<!DOCTYPE html>
<html lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>find_surface_model [HALCON算子参考手册]</title>
<style type="text/css">
      body {
    color: #000000;
    background-color: #ffffff;
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
}

.body_main {
    margin-left: 35px;
    margin-right: 35px;
}

@media screen and (min-width:992px) {

    .body_main {
        margin-left: 10%;
        margin-right: 10%;
    }

    table.toctable {
        width: 80%
    }
}

@media screen and (min-width:1400px) {

    .body_main {
        margin-left: 15%;
        margin-right: 15%;
    }

    table.toctable {
        width: 70%
    }
}

body>div ul ul {
    margin-left: inherit;
}

a:link {
    color: #0044cc;
}

a:link,
a:visited {
    text-decoration: none;
}

a:link:hover,
a:visited:hover {
    text-decoration: underline;
}

th {
    text-align: left;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    text-rendering: optimizeLegibility;
    color: #666666;
}

code {
    font-family: monospace,monospace;
}

h1 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

h2 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

hr {
    border: 0;
    border-top: solid 1px #f28d26;
}

.pre {
    display: block;
    padding-bottom: 1ex;
    font-family: monospace;
    white-space: pre;
}

pre {
    font-family: monospace, monospace;
    padding: 1ex;
    white-space: pre-wrap;
}

.toc {
    font-size: 80%;
    border-top: 1px dashed #f28d26;
    border-bottom: 1px dashed #f28d26;
    padding-top: 5px;
    padding-bottom: 5px;
}

.inv {
    margin: 0;
    border: 0;
    padding: 0;
}

.banner {
    color: #666666;
    padding-left: 1em;
}

.logo {
    background-color: white;
}

.keyboard {
    font-size: 80%;
    padding-left: 3px;
    padding-right: 3px;
    border-radius: 5px;
    border-width: 1px;
    border-style: solid;
    border-color: #f28d26;
    background-color: #f3f3f3;
}

.warning {
    margin-top: 2ex;
    margin-bottom: 1ex;
    padding: 10px;
    text-align: center;
    border: 1px solid;
    color: #bb0000;
    background-color: #fff7f7
}

.imprint {
    margin-top: 1ex;
    font-size: 80%;
    color: #666666;
}

.imprinthead {
    font-weight: bolder;
    color: #666666;
}

.indexlink {
    text-align: right;
    padding-bottom: 5px;
}

.postscript {
    margin-top: 2ex;
    font-size: 80%;
    color: #666666
}

.evenrow {
    background-color: #e7e7ef;
    vertical-align: top;
}

.oddrow {
    background-color: #f7f7ff;
    vertical-align: top;
}

.headrow {
    background-color: #97979f;
    color: #ffffff;
    vertical-align: top;
}

.logorow {
    vertical-align: top;
}

.error {
    color: red;
}

.var {
    font-style: italic
}

.halconoperator {
    font-family: monospace, monospace;
}

span.operator {
    font-family: monospace, monospace;
}

span.procedure {
    font-family: monospace, monospace;
}

span.operation {
    font-family: monospace, monospace;
}

span.feature {
    font-family: Arial, Helvetica, Homerton, sans-serif;
}

ul {
    padding-left: 1.2em;
}

li.dot {
    list-style-type: square;
    color: #f28d26;
}

.breadcrumb {
    font-size: 80%;
    color: white;
    background-color: #062d64;
    margin-bottom: 20px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 15px;
}

.webbar {
    font-size: 80%;
    background-color: #dddddd;
    margin-top: 0px;
    margin-left: -35px;
    margin-right: -35px;
    margin-bottom: 0px;
    padding-top: 5px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 5px;
}

.footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    border-top: 1px dashed #f28d26;
    font-size: 80%;
    color: #666666;
    padding-bottom: 8px;
}

.footer .socialmedia a {
    padding-left: 7px;
}

.socialmedia {
    padding-top: 10px;
}

.copyright {
    margin-top: 19px;
}

.breadcrumb a {
    color: #ffffff;
    border-bottom: 1px solid white;
}

.breadcrumb a:link:hover,
.breadcrumb a:visited:hover {
    text-decoration: none;
    border-bottom: none;
}

.heading {
    margin-top: 1ex;
    font-size: 110%;
    font-weight: bold;
    color: #666666;
}

.text {
    color: black;
}

.example {
    font-size: 80%;
    background-color: #f3f3f3;
    border: 1px dashed #666666;
    padding: 10px;
}

.displaymath {
    display: block;
    text-align: center;
    margin-top: 1ex;
    margin-bottom: 1ex;
}

.title {
    float: left;
    padding-top: 3px;
    padding-bottom: 3px;
}

.signnote {
    font-family: Arial, Helvetica, Homerton, sans-serif;
    font-size: 80%;
    color: #666666;
    font-weight: lighter;
    font-style: italic
}

.par {
    margin-bottom: 1.5em;
}

.parhead {
    text-align: right;
}

.parname {
    float: left;
}

.pardesc {
    font-size: 85%;
    margin-top: 0.5em;
    margin-bottom: 0.5em;
    margin-left: 2em;
}

.parcat {
    color: #666;
    font-weight: bold;
}

*[data-if=cpp],
*[data-if=c],
*[data-if=dotnet],
*[data-if=com],
*[data-if=python] {
    display: none;
}

.tabbar {
    text-align: right;
    border-bottom: 1px solid #f28d26;
    margin-bottom: 0.5em;
}

ul.tabs {
    padding-top: 3px;
    padding-bottom: 3px;
    margin-top: 10px;
    margin-bottom: 0;
    font-size: 80%
}

ul.tabs li {
    padding-top: 3px;
    padding-bottom: 3px;
    display: inline;
    overflow: hidden;
    list-style-type: none;
    margin: 0;
    margin-left: 8px;
    border-top: 1px solid #666;
    border-left: 1px solid #666;
    border-right: 1px solid #666;
}

ul.tabs li.active {
    border-left: 1px solid #f28d26;
    border-right: 1px solid #f28d26;
    border-top: 1px solid #f28d26;
    border-bottom: 1px solid #fff;
}

ul.tabs li.inactive {
    background-color: #eee;
}

ul.tabs li a {
    padding-left: 5px;
    padding-right: 5px;
    color: #666;
}

ul.tabs li a:link:hover {
    text-decoration: none;
}

ul.tabs li.inactive a {
    color: #666;
}

ul.tabs li.active a {
    color: black;
}

dl.generic dd {
    margin-bottom: 1em;
}

.pari {
    color: olive;
}

.paro {
    color: maroon;
}

.comment {
    font-size: 80%;
    color: green;
    white-space: nowrap;
}

table.grid {
    border-collapse: collapse;
}

table.grid td {
    padding: 5px;
    border: 1px solid;
}

table.layout {
    border: 0px;
}

table.layout td {
    padding: 5px;
}

table.table {
    border-collapse: collapse;
}

table.table td {
    padding: 5px;
    border-left: 0px;
    border-right: 0px;
}

table.table tr:last-child {
    border-bottom: 1px solid;
}

table.table th {
    padding: 5px;
    border-top: 1px solid;
    border-bottom: 1px solid;
    border-left: 0px;
    border-right: 0px;
}

.details_summary {
    cursor: pointer;
}

table.toctable {
    width: 100%;
}

table.toctable col:first-child {
    width: 20%;
}

table.toctable col:nth-last-child(2) {
    width: 8%;
}

table.altcolored tr:nth-child(even) {
    background-color: #f3f3f3;
}

    </style>
<!--OP_REF_STYLE_END-->
<script>
    <!--
var active_lang='hdevelop';function switchVisibility(obj,active_lang,new_lang)
{var display_style='inline';
for(var i=0;i<obj.length;i++)
{if(obj.item(i).getAttribute('data-if')==new_lang)
{obj.item(i).style.display=display_style;}
if(obj.item(i).getAttribute('data-if')==active_lang)
{obj.item(i).style.display='none';}}
return;}
function toggleLanguage(new_lang,initial)
{if(active_lang!=new_lang)
{var lis=document.getElementsByTagName('li');for(var i=0;i<lis.length;i++)
{if(lis.item(i).id=='syn-'+new_lang)
{lis.item(i).className='active';}
else
{lis.item(i).className='inactive';}}
var divs=document.getElementsByTagName('div');var spans=document.getElementsByTagName('span');switchVisibility(divs,active_lang,new_lang);switchVisibility(spans,active_lang,new_lang);if(!initial)
{setCookie("halcon_reference_language",new_lang,null,null);}
active_lang=new_lang;}
return;}
function setCookie(name,value,domain,exp_offset,path,secure)
{localStorage.setItem(name,value);}
function getCookie(name)
{return localStorage.getItem(name);}
function initialize()
{var qs=location.href.split('?')[1];var qs_lang_raw=location.href.split('interface=')[1];var qs_lang;if(qs_lang_raw)
{qs_lang=qs_lang_raw.split('#')[0];}
var cookie_lang=getCookie("halcon_reference_language");var new_lang;if((qs_lang=="hdevelop")||(qs_lang=="dotnet")||(qs_lang=="python")||(qs_lang=="cpp")||(qs_lang=="c"))
{new_lang=qs_lang;setCookie("halcon_reference_language",new_lang,null,null);}
else if((cookie_lang=="hdevelop")||(cookie_lang=="dotnet")||(cookie_lang=="python")||(cookie_lang=="cpp")||(cookie_lang=="c"))
{new_lang=cookie_lang;}
else
{new_lang="hdevelop";}
toggleLanguage(new_lang,1);return;}
-->

  </script>
</head>
<body onload="initialize();">
<div class="breadcrumb">
<br class="inv"><a href="index.html">目录</a> / <a href="toc_3dmatching.html">3D 匹配</a> / <a href="toc_3dmatching_surfacebased.html">Surface-Based</a><br class="inv">
</div>
<div class="body_main">
<div class="tabbar"><ul class="tabs">
<li id="syn-hdevelop" class="active"><a href="javascript:void(0);" onclick="toggleLanguage('hdevelop')" onfocus="blur()">HDevelop</a></li>
<li id="syn-dotnet" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('dotnet')" onfocus="blur()">.NET</a></li>
<li id="syn-python" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('python')" onfocus="blur()">Python</a></li>
<li id="syn-cpp" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('cpp')" onfocus="blur()">C++</a></li>
<li id="syn-c" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('c')" onfocus="blur()">C</a></li>
</ul></div>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<!--OP_REF_HEADER_END-->
<h1 id="sec_name">
<span data-if="hdevelop" style="display:inline;">find_surface_model</span><span data-if="c" style="display:none;">T_find_surface_model</span><span data-if="cpp" style="display:none;">FindSurfaceModel</span><span data-if="dotnet" style="display:none;">FindSurfaceModel</span><span data-if="python" style="display:none;">find_surface_model</span> (算子名称)</h1>
<h2>名称</h2>
<p><code><span data-if="hdevelop" style="display:inline;">find_surface_model</span><span data-if="c" style="display:none;">T_find_surface_model</span><span data-if="cpp" style="display:none;">FindSurfaceModel</span><span data-if="dotnet" style="display:none;">FindSurfaceModel</span><span data-if="python" style="display:none;">find_surface_model</span></code> — Find the best matches of a surface model in a 3D scene.</p>
<h2 id="sec_synopsis">参数签名</h2>
<div data-if="hdevelop" style="display:inline;">
<p>
<code><b>find_surface_model</b>( :  : <a href="#SurfaceModelID"><i>SurfaceModelID</i></a>, <a href="#ObjectModel3D"><i>ObjectModel3D</i></a>, <a href="#RelSamplingDistance"><i>RelSamplingDistance</i></a>, <a href="#KeyPointFraction"><i>KeyPointFraction</i></a>, <a href="#MinScore"><i>MinScore</i></a>, <a href="#ReturnResultHandle"><i>ReturnResultHandle</i></a>, <a href="#GenParamName"><i>GenParamName</i></a>, <a href="#GenParamValue"><i>GenParamValue</i></a> : <a href="#Pose"><i>Pose</i></a>, <a href="#Score"><i>Score</i></a>, <a href="#SurfaceMatchingResultID"><i>SurfaceMatchingResultID</i></a>)</code></p>
</div>
<div data-if="c" style="display:none;">
<p>
<code>Herror <b>T_find_surface_model</b>(const Htuple <a href="#SurfaceModelID"><i>SurfaceModelID</i></a>, const Htuple <a href="#ObjectModel3D"><i>ObjectModel3D</i></a>, const Htuple <a href="#RelSamplingDistance"><i>RelSamplingDistance</i></a>, const Htuple <a href="#KeyPointFraction"><i>KeyPointFraction</i></a>, const Htuple <a href="#MinScore"><i>MinScore</i></a>, const Htuple <a href="#ReturnResultHandle"><i>ReturnResultHandle</i></a>, const Htuple <a href="#GenParamName"><i>GenParamName</i></a>, const Htuple <a href="#GenParamValue"><i>GenParamValue</i></a>, Htuple* <a href="#Pose"><i>Pose</i></a>, Htuple* <a href="#Score"><i>Score</i></a>, Htuple* <a href="#SurfaceMatchingResultID"><i>SurfaceMatchingResultID</i></a>)</code></p>
</div>
<div data-if="cpp" style="display:none;">
<p>
<code>void <b>FindSurfaceModel</b>(const HTuple&amp; <a href="#SurfaceModelID"><i>SurfaceModelID</i></a>, const HTuple&amp; <a href="#ObjectModel3D"><i>ObjectModel3D</i></a>, const HTuple&amp; <a href="#RelSamplingDistance"><i>RelSamplingDistance</i></a>, const HTuple&amp; <a href="#KeyPointFraction"><i>KeyPointFraction</i></a>, const HTuple&amp; <a href="#MinScore"><i>MinScore</i></a>, const HTuple&amp; <a href="#ReturnResultHandle"><i>ReturnResultHandle</i></a>, const HTuple&amp; <a href="#GenParamName"><i>GenParamName</i></a>, const HTuple&amp; <a href="#GenParamValue"><i>GenParamValue</i></a>, HTuple* <a href="#Pose"><i>Pose</i></a>, HTuple* <a href="#Score"><i>Score</i></a>, HTuple* <a href="#SurfaceMatchingResultID"><i>SurfaceMatchingResultID</i></a>)</code></p>
<p>
<code>HPoseArray <a href="HObjectModel3D.html">HObjectModel3D</a>::<b>FindSurfaceModel</b>(const HSurfaceModel&amp; <a href="#SurfaceModelID"><i>SurfaceModelID</i></a>, double <a href="#RelSamplingDistance"><i>RelSamplingDistance</i></a>, double <a href="#KeyPointFraction"><i>KeyPointFraction</i></a>, const HTuple&amp; <a href="#MinScore"><i>MinScore</i></a>, const HString&amp; <a href="#ReturnResultHandle"><i>ReturnResultHandle</i></a>, const HTuple&amp; <a href="#GenParamName"><i>GenParamName</i></a>, const HTuple&amp; <a href="#GenParamValue"><i>GenParamValue</i></a>, HTuple* <a href="#Score"><i>Score</i></a>, HSurfaceMatchingResultArray* <a href="#SurfaceMatchingResultID"><i>SurfaceMatchingResultID</i></a>) const</code></p>
<p>
<code><a href="HPose.html">HPose</a> <a href="HObjectModel3D.html">HObjectModel3D</a>::<b>FindSurfaceModel</b>(const HSurfaceModel&amp; <a href="#SurfaceModelID"><i>SurfaceModelID</i></a>, double <a href="#RelSamplingDistance"><i>RelSamplingDistance</i></a>, double <a href="#KeyPointFraction"><i>KeyPointFraction</i></a>, double <a href="#MinScore"><i>MinScore</i></a>, const HString&amp; <a href="#ReturnResultHandle"><i>ReturnResultHandle</i></a>, const HTuple&amp; <a href="#GenParamName"><i>GenParamName</i></a>, const HTuple&amp; <a href="#GenParamValue"><i>GenParamValue</i></a>, HTuple* <a href="#Score"><i>Score</i></a>, HSurfaceMatchingResult* <a href="#SurfaceMatchingResultID"><i>SurfaceMatchingResultID</i></a>) const</code></p>
<p>
<code><a href="HPose.html">HPose</a> <a href="HObjectModel3D.html">HObjectModel3D</a>::<b>FindSurfaceModel</b>(const HSurfaceModel&amp; <a href="#SurfaceModelID"><i>SurfaceModelID</i></a>, double <a href="#RelSamplingDistance"><i>RelSamplingDistance</i></a>, double <a href="#KeyPointFraction"><i>KeyPointFraction</i></a>, double <a href="#MinScore"><i>MinScore</i></a>, const char* <a href="#ReturnResultHandle"><i>ReturnResultHandle</i></a>, const HTuple&amp; <a href="#GenParamName"><i>GenParamName</i></a>, const HTuple&amp; <a href="#GenParamValue"><i>GenParamValue</i></a>, HTuple* <a href="#Score"><i>Score</i></a>, HSurfaceMatchingResult* <a href="#SurfaceMatchingResultID"><i>SurfaceMatchingResultID</i></a>) const</code></p>
<p>
<code><a href="HPose.html">HPose</a> <a href="HObjectModel3D.html">HObjectModel3D</a>::<b>FindSurfaceModel</b>(const HSurfaceModel&amp; <a href="#SurfaceModelID"><i>SurfaceModelID</i></a>, double <a href="#RelSamplingDistance"><i>RelSamplingDistance</i></a>, double <a href="#KeyPointFraction"><i>KeyPointFraction</i></a>, double <a href="#MinScore"><i>MinScore</i></a>, const wchar_t* <a href="#ReturnResultHandle"><i>ReturnResultHandle</i></a>, const HTuple&amp; <a href="#GenParamName"><i>GenParamName</i></a>, const HTuple&amp; <a href="#GenParamValue"><i>GenParamValue</i></a>, HTuple* <a href="#Score"><i>Score</i></a>, HSurfaceMatchingResult* <a href="#SurfaceMatchingResultID"><i>SurfaceMatchingResultID</i></a>) const  <span class="signnote">
            (
            Windows only)
          </span></code></p>
<p>
<code>HPoseArray <a href="HSurfaceModel.html">HSurfaceModel</a>::<b>FindSurfaceModel</b>(const HObjectModel3D&amp; <a href="#ObjectModel3D"><i>ObjectModel3D</i></a>, double <a href="#RelSamplingDistance"><i>RelSamplingDistance</i></a>, double <a href="#KeyPointFraction"><i>KeyPointFraction</i></a>, const HTuple&amp; <a href="#MinScore"><i>MinScore</i></a>, const HString&amp; <a href="#ReturnResultHandle"><i>ReturnResultHandle</i></a>, const HTuple&amp; <a href="#GenParamName"><i>GenParamName</i></a>, const HTuple&amp; <a href="#GenParamValue"><i>GenParamValue</i></a>, HTuple* <a href="#Score"><i>Score</i></a>, HSurfaceMatchingResultArray* <a href="#SurfaceMatchingResultID"><i>SurfaceMatchingResultID</i></a>) const</code></p>
<p>
<code><a href="HPose.html">HPose</a> <a href="HSurfaceModel.html">HSurfaceModel</a>::<b>FindSurfaceModel</b>(const HObjectModel3D&amp; <a href="#ObjectModel3D"><i>ObjectModel3D</i></a>, double <a href="#RelSamplingDistance"><i>RelSamplingDistance</i></a>, double <a href="#KeyPointFraction"><i>KeyPointFraction</i></a>, double <a href="#MinScore"><i>MinScore</i></a>, const HString&amp; <a href="#ReturnResultHandle"><i>ReturnResultHandle</i></a>, const HTuple&amp; <a href="#GenParamName"><i>GenParamName</i></a>, const HTuple&amp; <a href="#GenParamValue"><i>GenParamValue</i></a>, HTuple* <a href="#Score"><i>Score</i></a>, HSurfaceMatchingResult* <a href="#SurfaceMatchingResultID"><i>SurfaceMatchingResultID</i></a>) const</code></p>
<p>
<code><a href="HPose.html">HPose</a> <a href="HSurfaceModel.html">HSurfaceModel</a>::<b>FindSurfaceModel</b>(const HObjectModel3D&amp; <a href="#ObjectModel3D"><i>ObjectModel3D</i></a>, double <a href="#RelSamplingDistance"><i>RelSamplingDistance</i></a>, double <a href="#KeyPointFraction"><i>KeyPointFraction</i></a>, double <a href="#MinScore"><i>MinScore</i></a>, const char* <a href="#ReturnResultHandle"><i>ReturnResultHandle</i></a>, const HTuple&amp; <a href="#GenParamName"><i>GenParamName</i></a>, const HTuple&amp; <a href="#GenParamValue"><i>GenParamValue</i></a>, HTuple* <a href="#Score"><i>Score</i></a>, HSurfaceMatchingResult* <a href="#SurfaceMatchingResultID"><i>SurfaceMatchingResultID</i></a>) const</code></p>
<p>
<code><a href="HPose.html">HPose</a> <a href="HSurfaceModel.html">HSurfaceModel</a>::<b>FindSurfaceModel</b>(const HObjectModel3D&amp; <a href="#ObjectModel3D"><i>ObjectModel3D</i></a>, double <a href="#RelSamplingDistance"><i>RelSamplingDistance</i></a>, double <a href="#KeyPointFraction"><i>KeyPointFraction</i></a>, double <a href="#MinScore"><i>MinScore</i></a>, const wchar_t* <a href="#ReturnResultHandle"><i>ReturnResultHandle</i></a>, const HTuple&amp; <a href="#GenParamName"><i>GenParamName</i></a>, const HTuple&amp; <a href="#GenParamValue"><i>GenParamValue</i></a>, HTuple* <a href="#Score"><i>Score</i></a>, HSurfaceMatchingResult* <a href="#SurfaceMatchingResultID"><i>SurfaceMatchingResultID</i></a>) const  <span class="signnote">
            (
            Windows only)
          </span></code></p>
<p>
<code>static HPoseArray <a href="HSurfaceMatchingResult.html">HSurfaceMatchingResult</a>::<b>FindSurfaceModel</b>(const HSurfaceModel&amp; <a href="#SurfaceModelID"><i>SurfaceModelID</i></a>, const HObjectModel3D&amp; <a href="#ObjectModel3D"><i>ObjectModel3D</i></a>, double <a href="#RelSamplingDistance"><i>RelSamplingDistance</i></a>, double <a href="#KeyPointFraction"><i>KeyPointFraction</i></a>, const HTuple&amp; <a href="#MinScore"><i>MinScore</i></a>, const HString&amp; <a href="#ReturnResultHandle"><i>ReturnResultHandle</i></a>, const HTuple&amp; <a href="#GenParamName"><i>GenParamName</i></a>, const HTuple&amp; <a href="#GenParamValue"><i>GenParamValue</i></a>, HTuple* <a href="#Score"><i>Score</i></a>, HSurfaceMatchingResultArray* <a href="#SurfaceMatchingResultID"><i>SurfaceMatchingResultID</i></a>)</code></p>
<p>
<code><a href="HPose.html">HPose</a> <a href="HSurfaceMatchingResult.html">HSurfaceMatchingResult</a>::<b>FindSurfaceModel</b>(const HSurfaceModel&amp; <a href="#SurfaceModelID"><i>SurfaceModelID</i></a>, const HObjectModel3D&amp; <a href="#ObjectModel3D"><i>ObjectModel3D</i></a>, double <a href="#RelSamplingDistance"><i>RelSamplingDistance</i></a>, double <a href="#KeyPointFraction"><i>KeyPointFraction</i></a>, double <a href="#MinScore"><i>MinScore</i></a>, const HString&amp; <a href="#ReturnResultHandle"><i>ReturnResultHandle</i></a>, const HTuple&amp; <a href="#GenParamName"><i>GenParamName</i></a>, const HTuple&amp; <a href="#GenParamValue"><i>GenParamValue</i></a>, HTuple* <a href="#Score"><i>Score</i></a>)</code></p>
<p>
<code><a href="HPose.html">HPose</a> <a href="HSurfaceMatchingResult.html">HSurfaceMatchingResult</a>::<b>FindSurfaceModel</b>(const HSurfaceModel&amp; <a href="#SurfaceModelID"><i>SurfaceModelID</i></a>, const HObjectModel3D&amp; <a href="#ObjectModel3D"><i>ObjectModel3D</i></a>, double <a href="#RelSamplingDistance"><i>RelSamplingDistance</i></a>, double <a href="#KeyPointFraction"><i>KeyPointFraction</i></a>, double <a href="#MinScore"><i>MinScore</i></a>, const char* <a href="#ReturnResultHandle"><i>ReturnResultHandle</i></a>, const HTuple&amp; <a href="#GenParamName"><i>GenParamName</i></a>, const HTuple&amp; <a href="#GenParamValue"><i>GenParamValue</i></a>, HTuple* <a href="#Score"><i>Score</i></a>)</code></p>
<p>
<code><a href="HPose.html">HPose</a> <a href="HSurfaceMatchingResult.html">HSurfaceMatchingResult</a>::<b>FindSurfaceModel</b>(const HSurfaceModel&amp; <a href="#SurfaceModelID"><i>SurfaceModelID</i></a>, const HObjectModel3D&amp; <a href="#ObjectModel3D"><i>ObjectModel3D</i></a>, double <a href="#RelSamplingDistance"><i>RelSamplingDistance</i></a>, double <a href="#KeyPointFraction"><i>KeyPointFraction</i></a>, double <a href="#MinScore"><i>MinScore</i></a>, const wchar_t* <a href="#ReturnResultHandle"><i>ReturnResultHandle</i></a>, const HTuple&amp; <a href="#GenParamName"><i>GenParamName</i></a>, const HTuple&amp; <a href="#GenParamValue"><i>GenParamValue</i></a>, HTuple* <a href="#Score"><i>Score</i></a>)  <span class="signnote">
            (
            Windows only)
          </span></code></p>
</div>
<div data-if="com" style="display:none;"></div>
<div data-if="dotnet" style="display:none;">
<p>
<code>static void <a href="HOperatorSet.html">HOperatorSet</a>.<b>FindSurfaceModel</b>(<a href="HTuple.html">HTuple</a> <a href="#SurfaceModelID"><i>surfaceModelID</i></a>, <a href="HTuple.html">HTuple</a> <a href="#ObjectModel3D"><i>objectModel3D</i></a>, <a href="HTuple.html">HTuple</a> <a href="#RelSamplingDistance"><i>relSamplingDistance</i></a>, <a href="HTuple.html">HTuple</a> <a href="#KeyPointFraction"><i>keyPointFraction</i></a>, <a href="HTuple.html">HTuple</a> <a href="#MinScore"><i>minScore</i></a>, <a href="HTuple.html">HTuple</a> <a href="#ReturnResultHandle"><i>returnResultHandle</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamName"><i>genParamName</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamValue"><i>genParamValue</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Pose"><i>pose</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Score"><i>score</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#SurfaceMatchingResultID"><i>surfaceMatchingResultID</i></a>)</code></p>
<p>
<code><a href="HPose.html">HPose[]</a> <a href="HObjectModel3D.html">HObjectModel3D</a>.<b>FindSurfaceModel</b>(<a href="HSurfaceModel.html">HSurfaceModel</a> <a href="#SurfaceModelID"><i>surfaceModelID</i></a>, double <a href="#RelSamplingDistance"><i>relSamplingDistance</i></a>, double <a href="#KeyPointFraction"><i>keyPointFraction</i></a>, <a href="HTuple.html">HTuple</a> <a href="#MinScore"><i>minScore</i></a>, string <a href="#ReturnResultHandle"><i>returnResultHandle</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamName"><i>genParamName</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamValue"><i>genParamValue</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Score"><i>score</i></a>, out <a href="HSurfaceMatchingResult.html">HSurfaceMatchingResult[]</a> <a href="#SurfaceMatchingResultID"><i>surfaceMatchingResultID</i></a>)</code></p>
<p>
<code><a href="HPose.html">HPose</a> <a href="HObjectModel3D.html">HObjectModel3D</a>.<b>FindSurfaceModel</b>(<a href="HSurfaceModel.html">HSurfaceModel</a> <a href="#SurfaceModelID"><i>surfaceModelID</i></a>, double <a href="#RelSamplingDistance"><i>relSamplingDistance</i></a>, double <a href="#KeyPointFraction"><i>keyPointFraction</i></a>, double <a href="#MinScore"><i>minScore</i></a>, string <a href="#ReturnResultHandle"><i>returnResultHandle</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamName"><i>genParamName</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamValue"><i>genParamValue</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Score"><i>score</i></a>, out <a href="HSurfaceMatchingResult.html">HSurfaceMatchingResult</a> <a href="#SurfaceMatchingResultID"><i>surfaceMatchingResultID</i></a>)</code></p>
<p>
<code><a href="HPose.html">HPose[]</a> <a href="HSurfaceModel.html">HSurfaceModel</a>.<b>FindSurfaceModel</b>(<a href="HObjectModel3D.html">HObjectModel3D</a> <a href="#ObjectModel3D"><i>objectModel3D</i></a>, double <a href="#RelSamplingDistance"><i>relSamplingDistance</i></a>, double <a href="#KeyPointFraction"><i>keyPointFraction</i></a>, <a href="HTuple.html">HTuple</a> <a href="#MinScore"><i>minScore</i></a>, string <a href="#ReturnResultHandle"><i>returnResultHandle</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamName"><i>genParamName</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamValue"><i>genParamValue</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Score"><i>score</i></a>, out <a href="HSurfaceMatchingResult.html">HSurfaceMatchingResult[]</a> <a href="#SurfaceMatchingResultID"><i>surfaceMatchingResultID</i></a>)</code></p>
<p>
<code><a href="HPose.html">HPose</a> <a href="HSurfaceModel.html">HSurfaceModel</a>.<b>FindSurfaceModel</b>(<a href="HObjectModel3D.html">HObjectModel3D</a> <a href="#ObjectModel3D"><i>objectModel3D</i></a>, double <a href="#RelSamplingDistance"><i>relSamplingDistance</i></a>, double <a href="#KeyPointFraction"><i>keyPointFraction</i></a>, double <a href="#MinScore"><i>minScore</i></a>, string <a href="#ReturnResultHandle"><i>returnResultHandle</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamName"><i>genParamName</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamValue"><i>genParamValue</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Score"><i>score</i></a>, out <a href="HSurfaceMatchingResult.html">HSurfaceMatchingResult</a> <a href="#SurfaceMatchingResultID"><i>surfaceMatchingResultID</i></a>)</code></p>
<p>
<code>static <a href="HPose.html">HPose[]</a> <a href="HSurfaceMatchingResult.html">HSurfaceMatchingResult</a>.<b>FindSurfaceModel</b>(<a href="HSurfaceModel.html">HSurfaceModel</a> <a href="#SurfaceModelID"><i>surfaceModelID</i></a>, <a href="HObjectModel3D.html">HObjectModel3D</a> <a href="#ObjectModel3D"><i>objectModel3D</i></a>, double <a href="#RelSamplingDistance"><i>relSamplingDistance</i></a>, double <a href="#KeyPointFraction"><i>keyPointFraction</i></a>, <a href="HTuple.html">HTuple</a> <a href="#MinScore"><i>minScore</i></a>, string <a href="#ReturnResultHandle"><i>returnResultHandle</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamName"><i>genParamName</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamValue"><i>genParamValue</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Score"><i>score</i></a>, out <a href="HSurfaceMatchingResult.html">HSurfaceMatchingResult[]</a> <a href="#SurfaceMatchingResultID"><i>surfaceMatchingResultID</i></a>)</code></p>
<p>
<code><a href="HPose.html">HPose</a> <a href="HSurfaceMatchingResult.html">HSurfaceMatchingResult</a>.<b>FindSurfaceModel</b>(<a href="HSurfaceModel.html">HSurfaceModel</a> <a href="#SurfaceModelID"><i>surfaceModelID</i></a>, <a href="HObjectModel3D.html">HObjectModel3D</a> <a href="#ObjectModel3D"><i>objectModel3D</i></a>, double <a href="#RelSamplingDistance"><i>relSamplingDistance</i></a>, double <a href="#KeyPointFraction"><i>keyPointFraction</i></a>, double <a href="#MinScore"><i>minScore</i></a>, string <a href="#ReturnResultHandle"><i>returnResultHandle</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamName"><i>genParamName</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamValue"><i>genParamValue</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Score"><i>score</i></a>)</code></p>
</div>
<div data-if="python" style="display:none;">
<p>
<code>def <b>find_surface_model</b>(<a href="#SurfaceModelID"><i>surface_model_id</i></a>: HHandle, <a href="#ObjectModel3D"><i>object_model_3d</i></a>: HHandle, <a href="#RelSamplingDistance"><i>rel_sampling_distance</i></a>: float, <a href="#KeyPointFraction"><i>key_point_fraction</i></a>: float, <a href="#MinScore"><i>min_score</i></a>: MaybeSequence[Union[float, int]], <a href="#ReturnResultHandle"><i>return_result_handle</i></a>: str, <a href="#GenParamName"><i>gen_param_name</i></a>: Sequence[str], <a href="#GenParamValue"><i>gen_param_value</i></a>: Sequence[Union[str, float, int]]) -&gt; Tuple[Sequence[Union[float, int]], Sequence[float], Sequence[HHandle]]</code></p>
<p>
<code>def <b>find_surface_model_s</b>(<a href="#SurfaceModelID"><i>surface_model_id</i></a>: HHandle, <a href="#ObjectModel3D"><i>object_model_3d</i></a>: HHandle, <a href="#RelSamplingDistance"><i>rel_sampling_distance</i></a>: float, <a href="#KeyPointFraction"><i>key_point_fraction</i></a>: float, <a href="#MinScore"><i>min_score</i></a>: MaybeSequence[Union[float, int]], <a href="#ReturnResultHandle"><i>return_result_handle</i></a>: str, <a href="#GenParamName"><i>gen_param_name</i></a>: Sequence[str], <a href="#GenParamValue"><i>gen_param_value</i></a>: Sequence[Union[str, float, int]]) -&gt; Tuple[Sequence[Union[float, int]], Sequence[float], HHandle]</code></p>
</div>
<h2 id="sec_description">描述</h2>
<p>该算子 <code><span data-if="hdevelop" style="display:inline">find_surface_model</span><span data-if="c" style="display:none">find_surface_model</span><span data-if="cpp" style="display:none">FindSurfaceModel</span><span data-if="com" style="display:none">FindSurfaceModel</span><span data-if="dotnet" style="display:none">FindSurfaceModel</span><span data-if="python" style="display:none">find_surface_model</span></code> finds the best matches of
the surface model <a href="#SurfaceModelID"><i><code><span data-if="hdevelop" style="display:inline">SurfaceModelID</span><span data-if="c" style="display:none">SurfaceModelID</span><span data-if="cpp" style="display:none">SurfaceModelID</span><span data-if="com" style="display:none">SurfaceModelID</span><span data-if="dotnet" style="display:none">surfaceModelID</span><span data-if="python" style="display:none">surface_model_id</span></code></i></a> in the 3D scene
<a href="#ObjectModel3D"><i><code><span data-if="hdevelop" style="display:inline">ObjectModel3D</span><span data-if="c" style="display:none">ObjectModel3D</span><span data-if="cpp" style="display:none">ObjectModel3D</span><span data-if="com" style="display:none">ObjectModel3D</span><span data-if="dotnet" style="display:none">objectModel3D</span><span data-if="python" style="display:none">object_model_3d</span></code></i></a> and returns their pose in <a href="#Pose"><i><code><span data-if="hdevelop" style="display:inline">Pose</span><span data-if="c" style="display:none">Pose</span><span data-if="cpp" style="display:none">Pose</span><span data-if="com" style="display:none">Pose</span><span data-if="dotnet" style="display:none">pose</span><span data-if="python" style="display:none">pose</span></code></i></a>.
</p>
<p>The matching is divided in three steps:
</p>
<ol>
<li>
<p> <code>Approximate matching</code>
</p>
</li>
<li>
<p> <code>Sparse pose refinement</code>
</p>
</li>
<li>
<p> <code>Dense pose refinement</code>
</p>
</li>
</ol>
<p>
These steps are described in more detail in the technical note
<code>Surface-Based Matching</code>. The generic parameters used to control these
steps are described in the respective sections below.
The further paragraphs describe the parameters and mention further points to
note.
</p>
<p>The matching process and the parameters can be visualized and inspected
using the HDevelop procedure <code>debug_find_surface_model</code>.
</p>
<h3>Points to Note</h3>
<p>Matching the surface model uses points and normals of the 3D scene
<a href="#ObjectModel3D"><i><code><span data-if="hdevelop" style="display:inline">ObjectModel3D</span><span data-if="c" style="display:none">ObjectModel3D</span><span data-if="cpp" style="display:none">ObjectModel3D</span><span data-if="com" style="display:none">ObjectModel3D</span><span data-if="dotnet" style="display:none">objectModel3D</span><span data-if="python" style="display:none">object_model_3d</span></code></i></a>.
The scene shall provide one of the following options:
</p>
<ul>
<li>
<p> points and point normals.
</p>
</li>
<li>
<p> points and a 2D-Mapping, e.g., an XYZ image triple converted with
<a href="xyz_to_object_model_3d.html"><code><span data-if="hdevelop" style="display:inline">xyz_to_object_model_3d</span><span data-if="c" style="display:none">xyz_to_object_model_3d</span><span data-if="cpp" style="display:none">XyzToObjectModel3d</span><span data-if="com" style="display:none">XyzToObjectModel3d</span><span data-if="dotnet" style="display:none">XyzToObjectModel3d</span><span data-if="python" style="display:none">xyz_to_object_model_3d</span></code></a>.
In this case the normals are calculated using the 2D-Mapping.
</p>
</li>
<li>
<p> points only. The normals are estimated based on the 3D neighborhood.
Note, this option is not recommended, since it generally leads to a
longer processing time and additionally the computed normals are usually
less accurate, leading to less accurate results.
</p>
</li>
</ul>
<p>
It is important for an accurate <a href="#Pose"><i><code><span data-if="hdevelop" style="display:inline">Pose</span><span data-if="c" style="display:none">Pose</span><span data-if="cpp" style="display:none">Pose</span><span data-if="com" style="display:none">Pose</span><span data-if="dotnet" style="display:none">pose</span><span data-if="python" style="display:none">pose</span></code></i></a> that the normals of the scene
and the model point in the same direction (see
<i><span data-if="hdevelop" style="display:inline">'scene_invert_normals'</span><span data-if="c" style="display:none">"scene_invert_normals"</span><span data-if="cpp" style="display:none">"scene_invert_normals"</span><span data-if="com" style="display:none">"scene_invert_normals"</span><span data-if="dotnet" style="display:none">"scene_invert_normals"</span><span data-if="python" style="display:none">"scene_invert_normals"</span></i>).
</p>
<p>If the model was trained for edge-supported surface-based matching and
the edge-supported matching has not been turned off via
<i><span data-if="hdevelop" style="display:inline">'use_3d_edges'</span><span data-if="c" style="display:none">"use_3d_edges"</span><span data-if="cpp" style="display:none">"use_3d_edges"</span><span data-if="com" style="display:none">"use_3d_edges"</span><span data-if="dotnet" style="display:none">"use_3d_edges"</span><span data-if="python" style="display:none">"use_3d_edges"</span></i>, only the
second combination is possible, i.e., the scene must contain a 2D mapping.
</p>
<p>If the model was trained for edge-supported surface-based matching and
the scene contains a mapping, normals contained in the input point
cloud are not used (see <i><span data-if="hdevelop" style="display:inline">'scene_normal_computation'</span><span data-if="c" style="display:none">"scene_normal_computation"</span><span data-if="cpp" style="display:none">"scene_normal_computation"</span><span data-if="com" style="display:none">"scene_normal_computation"</span><span data-if="dotnet" style="display:none">"scene_normal_computation"</span><span data-if="python" style="display:none">"scene_normal_computation"</span></i> below).
</p>
<p>Further, for models which were trained for edge-supported surface-based
matching it is necessary that the normal vectors point inwards.
</p>
<p>Note that triangles or polygons in the passed scene are ignored.
Instead, only the vertices are used for matching.
It is thus in general not recommended to use this operator on meshed scenes,
such as CAD data.
Instead, such a scene must be sampled beforehand using
<a href="sample_object_model_3d.html"><code><span data-if="hdevelop" style="display:inline">sample_object_model_3d</span><span data-if="c" style="display:none">sample_object_model_3d</span><span data-if="cpp" style="display:none">SampleObjectModel3d</span><span data-if="com" style="display:none">SampleObjectModel3d</span><span data-if="dotnet" style="display:none">SampleObjectModel3d</span><span data-if="python" style="display:none">sample_object_model_3d</span></code></a> to create points and normals
(e.g., using the method <i><span data-if="hdevelop" style="display:inline">'fast_compute_normals'</span><span data-if="c" style="display:none">"fast_compute_normals"</span><span data-if="cpp" style="display:none">"fast_compute_normals"</span><span data-if="com" style="display:none">"fast_compute_normals"</span><span data-if="dotnet" style="display:none">"fast_compute_normals"</span><span data-if="python" style="display:none">"fast_compute_normals"</span></i>).
</p>
<p>When using noisy point clouds, e.g., from time-of-flight cameras, the
generic parameter <i><span data-if="hdevelop" style="display:inline">'scene_normal_computation'</span><span data-if="c" style="display:none">"scene_normal_computation"</span><span data-if="cpp" style="display:none">"scene_normal_computation"</span><span data-if="com" style="display:none">"scene_normal_computation"</span><span data-if="dotnet" style="display:none">"scene_normal_computation"</span><span data-if="python" style="display:none">"scene_normal_computation"</span></i> could be set to
<i><span data-if="hdevelop" style="display:inline">'mls'</span><span data-if="c" style="display:none">"mls"</span><span data-if="cpp" style="display:none">"mls"</span><span data-if="com" style="display:none">"mls"</span><span data-if="dotnet" style="display:none">"mls"</span><span data-if="python" style="display:none">"mls"</span></i> in order to obtain more robust results (see below).
</p>
<h3>Parameter Description</h3>
<p><a href="#SurfaceModelID"><i><code><span data-if="hdevelop" style="display:inline">SurfaceModelID</span><span data-if="c" style="display:none">SurfaceModelID</span><span data-if="cpp" style="display:none">SurfaceModelID</span><span data-if="com" style="display:none">SurfaceModelID</span><span data-if="dotnet" style="display:none">surfaceModelID</span><span data-if="python" style="display:none">surface_model_id</span></code></i></a> is the handle of the surface model.
The model must have been created previously with
<a href="create_surface_model.html"><code><span data-if="hdevelop" style="display:inline">create_surface_model</span><span data-if="c" style="display:none">create_surface_model</span><span data-if="cpp" style="display:none">CreateSurfaceModel</span><span data-if="com" style="display:none">CreateSurfaceModel</span><span data-if="dotnet" style="display:none">CreateSurfaceModel</span><span data-if="python" style="display:none">create_surface_model</span></code></a> or read in with <a href="read_surface_model.html"><code><span data-if="hdevelop" style="display:inline">read_surface_model</span><span data-if="c" style="display:none">read_surface_model</span><span data-if="cpp" style="display:none">ReadSurfaceModel</span><span data-if="com" style="display:none">ReadSurfaceModel</span><span data-if="dotnet" style="display:none">ReadSurfaceModel</span><span data-if="python" style="display:none">read_surface_model</span></code></a>,
respectively.
Certain surface model parameters influencing the matching can be set using
<a href="set_surface_model_param.html"><code><span data-if="hdevelop" style="display:inline">set_surface_model_param</span><span data-if="c" style="display:none">set_surface_model_param</span><span data-if="cpp" style="display:none">SetSurfaceModelParam</span><span data-if="com" style="display:none">SetSurfaceModelParam</span><span data-if="dotnet" style="display:none">SetSurfaceModelParam</span><span data-if="python" style="display:none">set_surface_model_param</span></code></a>, such as
<i><span data-if="hdevelop" style="display:inline">'pose_restriction_max_angle_diff'</span><span data-if="c" style="display:none">"pose_restriction_max_angle_diff"</span><span data-if="cpp" style="display:none">"pose_restriction_max_angle_diff"</span><span data-if="com" style="display:none">"pose_restriction_max_angle_diff"</span><span data-if="dotnet" style="display:none">"pose_restriction_max_angle_diff"</span><span data-if="python" style="display:none">"pose_restriction_max_angle_diff"</span></i> restricting the allowed range
of rotations.
</p>
<p><a href="#ObjectModel3D"><i><code><span data-if="hdevelop" style="display:inline">ObjectModel3D</span><span data-if="c" style="display:none">ObjectModel3D</span><span data-if="cpp" style="display:none">ObjectModel3D</span><span data-if="com" style="display:none">ObjectModel3D</span><span data-if="dotnet" style="display:none">objectModel3D</span><span data-if="python" style="display:none">object_model_3d</span></code></i></a> is the handle of the 3D object model containing the
scene in which the matches are searched.
Note that in most cases, it is assumed the scene was observed from a camera
looking along the z-axis. This is important to align the scene normals if
they are re-computed (see <i><span data-if="hdevelop" style="display:inline">'scene_normal_computation'</span><span data-if="c" style="display:none">"scene_normal_computation"</span><span data-if="cpp" style="display:none">"scene_normal_computation"</span><span data-if="com" style="display:none">"scene_normal_computation"</span><span data-if="dotnet" style="display:none">"scene_normal_computation"</span><span data-if="python" style="display:none">"scene_normal_computation"</span></i> below).
In contrast, when the model was trained
for edge-supported surface-based matching and the scene contains a mapping,
normals are automatically aligned consistently.
</p>
<p>The parameter <a href="#RelSamplingDistance"><i><code><span data-if="hdevelop" style="display:inline">RelSamplingDistance</span><span data-if="c" style="display:none">RelSamplingDistance</span><span data-if="cpp" style="display:none">RelSamplingDistance</span><span data-if="com" style="display:none">RelSamplingDistance</span><span data-if="dotnet" style="display:none">relSamplingDistance</span><span data-if="python" style="display:none">rel_sampling_distance</span></code></i></a> controls the sampling distance
during the step <code>Approximate matching</code> and the <a href="#Score"><i><code><span data-if="hdevelop" style="display:inline">Score</span><span data-if="c" style="display:none">Score</span><span data-if="cpp" style="display:none">Score</span><span data-if="com" style="display:none">Score</span><span data-if="dotnet" style="display:none">score</span><span data-if="python" style="display:none">score</span></code></i></a>
calculation during the step <code>Sparse pose refinement</code>.
Its value is given relative to the diameter of the surface model.
Decreasing <a href="#RelSamplingDistance"><i><code><span data-if="hdevelop" style="display:inline">RelSamplingDistance</span><span data-if="c" style="display:none">RelSamplingDistance</span><span data-if="cpp" style="display:none">RelSamplingDistance</span><span data-if="com" style="display:none">RelSamplingDistance</span><span data-if="dotnet" style="display:none">relSamplingDistance</span><span data-if="python" style="display:none">rel_sampling_distance</span></code></i></a> leads to more sampled points,
and in turn to a more stable but slower matching. Increasing
<a href="#RelSamplingDistance"><i><code><span data-if="hdevelop" style="display:inline">RelSamplingDistance</span><span data-if="c" style="display:none">RelSamplingDistance</span><span data-if="cpp" style="display:none">RelSamplingDistance</span><span data-if="com" style="display:none">RelSamplingDistance</span><span data-if="dotnet" style="display:none">relSamplingDistance</span><span data-if="python" style="display:none">rel_sampling_distance</span></code></i></a> reduces the number of sampled scene
points, which leads to a less stable but faster matching.
For an illustration showing different values for
<a href="#RelSamplingDistance"><i><code><span data-if="hdevelop" style="display:inline">RelSamplingDistance</span><span data-if="c" style="display:none">RelSamplingDistance</span><span data-if="cpp" style="display:none">RelSamplingDistance</span><span data-if="com" style="display:none">RelSamplingDistance</span><span data-if="dotnet" style="display:none">relSamplingDistance</span><span data-if="python" style="display:none">rel_sampling_distance</span></code></i></a>, please refer to 该算子
<a href="create_surface_model.html"><code><span data-if="hdevelop" style="display:inline">create_surface_model</span><span data-if="c" style="display:none">create_surface_model</span><span data-if="cpp" style="display:none">CreateSurfaceModel</span><span data-if="com" style="display:none">CreateSurfaceModel</span><span data-if="dotnet" style="display:none">CreateSurfaceModel</span><span data-if="python" style="display:none">create_surface_model</span></code></a>.
The sampled scene points can be retrieved for a visual inspection
using 该算子 <a href="get_surface_matching_result.html"><code><span data-if="hdevelop" style="display:inline">get_surface_matching_result</span><span data-if="c" style="display:none">get_surface_matching_result</span><span data-if="cpp" style="display:none">GetSurfaceMatchingResult</span><span data-if="com" style="display:none">GetSurfaceMatchingResult</span><span data-if="dotnet" style="display:none">GetSurfaceMatchingResult</span><span data-if="python" style="display:none">get_surface_matching_result</span></code></a>.
For a robust matching it is recommended that at least 50-100
scene points are sampled for each object instance.
</p>
<p>The parameter <a href="#KeyPointFraction"><i><code><span data-if="hdevelop" style="display:inline">KeyPointFraction</span><span data-if="c" style="display:none">KeyPointFraction</span><span data-if="cpp" style="display:none">KeyPointFraction</span><span data-if="com" style="display:none">KeyPointFraction</span><span data-if="dotnet" style="display:none">keyPointFraction</span><span data-if="python" style="display:none">key_point_fraction</span></code></i></a> controls how many
points out of the sampled scene points are selected as key points.
For example, if the value is set to <i>0.1</i>, 10% of the sampled
scene points are used as key points.
For stable results it is important that each instance of the object
is covered by several key points.
Increasing <a href="#KeyPointFraction"><i><code><span data-if="hdevelop" style="display:inline">KeyPointFraction</span><span data-if="c" style="display:none">KeyPointFraction</span><span data-if="cpp" style="display:none">KeyPointFraction</span><span data-if="com" style="display:none">KeyPointFraction</span><span data-if="dotnet" style="display:none">keyPointFraction</span><span data-if="python" style="display:none">key_point_fraction</span></code></i></a> means that more key points
are selected from the scene, resulting in a slower but more stable
matching. Decreasing <a href="#KeyPointFraction"><i><code><span data-if="hdevelop" style="display:inline">KeyPointFraction</span><span data-if="c" style="display:none">KeyPointFraction</span><span data-if="cpp" style="display:none">KeyPointFraction</span><span data-if="com" style="display:none">KeyPointFraction</span><span data-if="dotnet" style="display:none">keyPointFraction</span><span data-if="python" style="display:none">key_point_fraction</span></code></i></a> has the inverse effect
and results in a faster but less stable matching.
该算子 <a href="get_surface_matching_result.html"><code><span data-if="hdevelop" style="display:inline">get_surface_matching_result</span><span data-if="c" style="display:none">get_surface_matching_result</span><span data-if="cpp" style="display:none">GetSurfaceMatchingResult</span><span data-if="com" style="display:none">GetSurfaceMatchingResult</span><span data-if="dotnet" style="display:none">GetSurfaceMatchingResult</span><span data-if="python" style="display:none">get_surface_matching_result</span></code></a> can be used to
retrieve the selected key points for visual inspection.
</p>
<p>The parameter <a href="#MinScore"><i><code><span data-if="hdevelop" style="display:inline">MinScore</span><span data-if="c" style="display:none">MinScore</span><span data-if="cpp" style="display:none">MinScore</span><span data-if="com" style="display:none">MinScore</span><span data-if="dotnet" style="display:none">minScore</span><span data-if="python" style="display:none">min_score</span></code></i></a> can be used to filter the results.
Only matches with a score exceeding the value of <a href="#MinScore"><i><code><span data-if="hdevelop" style="display:inline">MinScore</span><span data-if="c" style="display:none">MinScore</span><span data-if="cpp" style="display:none">MinScore</span><span data-if="com" style="display:none">MinScore</span><span data-if="dotnet" style="display:none">minScore</span><span data-if="python" style="display:none">min_score</span></code></i></a> are
returned.
If <a href="#MinScore"><i><code><span data-if="hdevelop" style="display:inline">MinScore</span><span data-if="c" style="display:none">MinScore</span><span data-if="cpp" style="display:none">MinScore</span><span data-if="com" style="display:none">MinScore</span><span data-if="dotnet" style="display:none">minScore</span><span data-if="python" style="display:none">min_score</span></code></i></a> is set to zero, all matches are returned.
</p>
<p>For edged-supported surface-based matching (see
<a href="create_surface_model.html"><code><span data-if="hdevelop" style="display:inline">create_surface_model</span><span data-if="c" style="display:none">create_surface_model</span><span data-if="cpp" style="display:none">CreateSurfaceModel</span><span data-if="com" style="display:none">CreateSurfaceModel</span><span data-if="dotnet" style="display:none">CreateSurfaceModel</span><span data-if="python" style="display:none">create_surface_model</span></code></a>) four different sub-scores are determined
(see their explanation below). For surface-based matching models where
view-based score computation is trained (see <a href="create_surface_model.html"><code><span data-if="hdevelop" style="display:inline">create_surface_model</span><span data-if="c" style="display:none">create_surface_model</span><span data-if="cpp" style="display:none">CreateSurfaceModel</span><span data-if="com" style="display:none">CreateSurfaceModel</span><span data-if="dotnet" style="display:none">CreateSurfaceModel</span><span data-if="python" style="display:none">create_surface_model</span></code></a>),
an additional fifth sub-score is determined.
As a consequence, you can filter the results based on each of them by
passing a tuple with up to five threshold values to <a href="#MinScore"><i><code><span data-if="hdevelop" style="display:inline">MinScore</span><span data-if="c" style="display:none">MinScore</span><span data-if="cpp" style="display:none">MinScore</span><span data-if="com" style="display:none">MinScore</span><span data-if="dotnet" style="display:none">minScore</span><span data-if="python" style="display:none">min_score</span></code></i></a>.
These threshold values are sorted in the order of the scores (see below)
and missing entries are regarded as <i>0</i>, meaning no filtering based
on this sub-score.
To find suitable values for the thresholds, the corresponding sub-scores
of found object instances can be obtained using
<a href="get_surface_matching_result.html"><code><span data-if="hdevelop" style="display:inline">get_surface_matching_result</span><span data-if="c" style="display:none">get_surface_matching_result</span><span data-if="cpp" style="display:none">GetSurfaceMatchingResult</span><span data-if="com" style="display:none">GetSurfaceMatchingResult</span><span data-if="dotnet" style="display:none">GetSurfaceMatchingResult</span><span data-if="python" style="display:none">get_surface_matching_result</span></code></a>.
Depending on the settings, not all sub-scores might be available.
The thresholds for unavailable sub-scores are ignored.
The five sub-scores, whose threshold values have to be passed in exactly
this order in <a href="#MinScore"><i><code><span data-if="hdevelop" style="display:inline">MinScore</span><span data-if="c" style="display:none">MinScore</span><span data-if="cpp" style="display:none">MinScore</span><span data-if="com" style="display:none">MinScore</span><span data-if="dotnet" style="display:none">minScore</span><span data-if="python" style="display:none">min_score</span></code></i></a>, are:
</p>
<ol>
<li>
<p> The overall score as returned in <a href="#Score"><i><code><span data-if="hdevelop" style="display:inline">Score</span><span data-if="c" style="display:none">Score</span><span data-if="cpp" style="display:none">Score</span><span data-if="com" style="display:none">Score</span><span data-if="dotnet" style="display:none">score</span><span data-if="python" style="display:none">score</span></code></i></a> and
through <i><span data-if="hdevelop" style="display:inline">'score'</span><span data-if="c" style="display:none">"score"</span><span data-if="cpp" style="display:none">"score"</span><span data-if="com" style="display:none">"score"</span><span data-if="dotnet" style="display:none">"score"</span><span data-if="python" style="display:none">"score"</span></i> by <a href="get_surface_matching_result.html"><code><span data-if="hdevelop" style="display:inline">get_surface_matching_result</span><span data-if="c" style="display:none">get_surface_matching_result</span><span data-if="cpp" style="display:none">GetSurfaceMatchingResult</span><span data-if="com" style="display:none">GetSurfaceMatchingResult</span><span data-if="dotnet" style="display:none">GetSurfaceMatchingResult</span><span data-if="python" style="display:none">get_surface_matching_result</span></code></a>,
</p>
</li>
<li>
<p> the surface fraction of the score, i.e., how much of the object's
surface was detected in the scene, returned
through <i><span data-if="hdevelop" style="display:inline">'score_surface'</span><span data-if="c" style="display:none">"score_surface"</span><span data-if="cpp" style="display:none">"score_surface"</span><span data-if="com" style="display:none">"score_surface"</span><span data-if="dotnet" style="display:none">"score_surface"</span><span data-if="python" style="display:none">"score_surface"</span></i> by <a href="get_surface_matching_result.html"><code><span data-if="hdevelop" style="display:inline">get_surface_matching_result</span><span data-if="c" style="display:none">get_surface_matching_result</span><span data-if="cpp" style="display:none">GetSurfaceMatchingResult</span><span data-if="com" style="display:none">GetSurfaceMatchingResult</span><span data-if="dotnet" style="display:none">GetSurfaceMatchingResult</span><span data-if="python" style="display:none">get_surface_matching_result</span></code></a>,
</p>
</li>
<li>
<p> the 3D edge fraction of the score, i.e., how well the 3D edges of
the object silhouette are aligned with the 3D edges detected in the scene
returned through <i><span data-if="hdevelop" style="display:inline">'score_3d_edges'</span><span data-if="c" style="display:none">"score_3d_edges"</span><span data-if="cpp" style="display:none">"score_3d_edges"</span><span data-if="com" style="display:none">"score_3d_edges"</span><span data-if="dotnet" style="display:none">"score_3d_edges"</span><span data-if="python" style="display:none">"score_3d_edges"</span></i> by
<a href="get_surface_matching_result.html"><code><span data-if="hdevelop" style="display:inline">get_surface_matching_result</span><span data-if="c" style="display:none">get_surface_matching_result</span><span data-if="cpp" style="display:none">GetSurfaceMatchingResult</span><span data-if="com" style="display:none">GetSurfaceMatchingResult</span><span data-if="dotnet" style="display:none">GetSurfaceMatchingResult</span><span data-if="python" style="display:none">get_surface_matching_result</span></code></a>,
</p>
</li>
<li>
<p> the 2D edge fraction of the score, i.e., how well the
object silhouette projected into the images aligns with edges
detected in the images (available only for 该算子s
<a href="find_surface_model_image.html"><code><span data-if="hdevelop" style="display:inline">find_surface_model_image</span><span data-if="c" style="display:none">find_surface_model_image</span><span data-if="cpp" style="display:none">FindSurfaceModelImage</span><span data-if="com" style="display:none">FindSurfaceModelImage</span><span data-if="dotnet" style="display:none">FindSurfaceModelImage</span><span data-if="python" style="display:none">find_surface_model_image</span></code></a> and
<a href="refine_surface_model_pose_image.html"><code><span data-if="hdevelop" style="display:inline">refine_surface_model_pose_image</span><span data-if="c" style="display:none">refine_surface_model_pose_image</span><span data-if="cpp" style="display:none">RefineSurfaceModelPoseImage</span><span data-if="com" style="display:none">RefineSurfaceModelPoseImage</span><span data-if="dotnet" style="display:none">RefineSurfaceModelPoseImage</span><span data-if="python" style="display:none">refine_surface_model_pose_image</span></code></a>), returned through
<i><span data-if="hdevelop" style="display:inline">'score_2d_edges'</span><span data-if="c" style="display:none">"score_2d_edges"</span><span data-if="cpp" style="display:none">"score_2d_edges"</span><span data-if="com" style="display:none">"score_2d_edges"</span><span data-if="dotnet" style="display:none">"score_2d_edges"</span><span data-if="python" style="display:none">"score_2d_edges"</span></i> by <a href="get_surface_matching_result.html"><code><span data-if="hdevelop" style="display:inline">get_surface_matching_result</span><span data-if="c" style="display:none">get_surface_matching_result</span><span data-if="cpp" style="display:none">GetSurfaceMatchingResult</span><span data-if="com" style="display:none">GetSurfaceMatchingResult</span><span data-if="dotnet" style="display:none">GetSurfaceMatchingResult</span><span data-if="python" style="display:none">get_surface_matching_result</span></code></a>, and
</p>
</li>
<li>
<p> the view-based score, i.e., how many model points were detected in the
scene, in relation to how many of the object points are potentially
visible from the determined viewpoint, returned through
<i><span data-if="hdevelop" style="display:inline">'score_view_based'</span><span data-if="c" style="display:none">"score_view_based"</span><span data-if="cpp" style="display:none">"score_view_based"</span><span data-if="com" style="display:none">"score_view_based"</span><span data-if="dotnet" style="display:none">"score_view_based"</span><span data-if="python" style="display:none">"score_view_based"</span></i> by <a href="get_surface_matching_result.html"><code><span data-if="hdevelop" style="display:inline">get_surface_matching_result</span><span data-if="c" style="display:none">get_surface_matching_result</span><span data-if="cpp" style="display:none">GetSurfaceMatchingResult</span><span data-if="com" style="display:none">GetSurfaceMatchingResult</span><span data-if="dotnet" style="display:none">GetSurfaceMatchingResult</span><span data-if="python" style="display:none">get_surface_matching_result</span></code></a>.
</p>
</li>
</ol>
<p>The parameter <a href="#ReturnResultHandle"><i><code><span data-if="hdevelop" style="display:inline">ReturnResultHandle</span><span data-if="c" style="display:none">ReturnResultHandle</span><span data-if="cpp" style="display:none">ReturnResultHandle</span><span data-if="com" style="display:none">ReturnResultHandle</span><span data-if="dotnet" style="display:none">returnResultHandle</span><span data-if="python" style="display:none">return_result_handle</span></code></i></a> determines if a
surface matching result handle is returned or not.
If the parameter is set to <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>, the handle is returned in
the parameter <a href="#SurfaceMatchingResultID"><i><code><span data-if="hdevelop" style="display:inline">SurfaceMatchingResultID</span><span data-if="c" style="display:none">SurfaceMatchingResultID</span><span data-if="cpp" style="display:none">SurfaceMatchingResultID</span><span data-if="com" style="display:none">SurfaceMatchingResultID</span><span data-if="dotnet" style="display:none">surfaceMatchingResultID</span><span data-if="python" style="display:none">surface_matching_result_id</span></code></i></a>.
Additional details of the matching
process can be queried with 该算子
<a href="get_surface_matching_result.html"><code><span data-if="hdevelop" style="display:inline">get_surface_matching_result</span><span data-if="c" style="display:none">get_surface_matching_result</span><span data-if="cpp" style="display:none">GetSurfaceMatchingResult</span><span data-if="com" style="display:none">GetSurfaceMatchingResult</span><span data-if="dotnet" style="display:none">GetSurfaceMatchingResult</span><span data-if="python" style="display:none">get_surface_matching_result</span></code></a> using that handle.
</p>
<p>The parameters <a href="#GenParamName"><i><code><span data-if="hdevelop" style="display:inline">GenParamName</span><span data-if="c" style="display:none">GenParamName</span><span data-if="cpp" style="display:none">GenParamName</span><span data-if="com" style="display:none">GenParamName</span><span data-if="dotnet" style="display:none">genParamName</span><span data-if="python" style="display:none">gen_param_name</span></code></i></a> and <a href="#GenParamValue"><i><code><span data-if="hdevelop" style="display:inline">GenParamValue</span><span data-if="c" style="display:none">GenParamValue</span><span data-if="cpp" style="display:none">GenParamValue</span><span data-if="com" style="display:none">GenParamValue</span><span data-if="dotnet" style="display:none">genParamValue</span><span data-if="python" style="display:none">gen_param_value</span></code></i></a> are used
to set generic parameters. Both get a tuple of equal length, where the
tuple passed to <a href="#GenParamName"><i><code><span data-if="hdevelop" style="display:inline">GenParamName</span><span data-if="c" style="display:none">GenParamName</span><span data-if="cpp" style="display:none">GenParamName</span><span data-if="com" style="display:none">GenParamName</span><span data-if="dotnet" style="display:none">genParamName</span><span data-if="python" style="display:none">gen_param_name</span></code></i></a> contains the names of the
parameters to set, and the tuple passed to <a href="#GenParamValue"><i><code><span data-if="hdevelop" style="display:inline">GenParamValue</span><span data-if="c" style="display:none">GenParamValue</span><span data-if="cpp" style="display:none">GenParamValue</span><span data-if="com" style="display:none">GenParamValue</span><span data-if="dotnet" style="display:none">genParamValue</span><span data-if="python" style="display:none">gen_param_value</span></code></i></a> contains
the corresponding values. The possible parameter names and values
are described in the paragraph <code>The three steps of the matching</code>.
</p>
<p>The output parameter <a href="#Pose"><i><code><span data-if="hdevelop" style="display:inline">Pose</span><span data-if="c" style="display:none">Pose</span><span data-if="cpp" style="display:none">Pose</span><span data-if="com" style="display:none">Pose</span><span data-if="dotnet" style="display:none">pose</span><span data-if="python" style="display:none">pose</span></code></i></a> gives the 3D poses of the found object
instances. For every found instance of the surface model its pose is given
in the scene coordinate system, thus the pose is in the form
<span title="1" style="vertical-align:-0.217917em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="3.55591em" height="1.01195em" viewBox="0 0 56.894623 16.191269">
<!-- Original BoundingBox: -28.447311 -8.095642 28.447311 8.095627 -->
  <defs>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmmi7_99">
      <path style="fill-rule: evenodd;" d="M438.000000 -383.000000C402.000000 -377.000000,387.000000 -349.000000,387.000000 -327.000000C387.000000 -300.000000,408.000000 -290.000000,426.000000 -290.000000C448.000000 -290.000000,483.000000 -306.000000,483.000000 -354.000000C483.000000 -422.000000,405.000000 -441.000000,351.000000 -441.000000C201.000000 -441.000000,62.000000 -303.000000,62.000000 -164.000000C62.000000 -78.000000,122.000000 10.000000,247.000000 10.000000C416.000000 10.000000,495.000000 -89.000000,495.000000 -103.000000C495.000000 -109.000000,486.000000 -120.000000,478.000000 -120.000000C472.000000 -120.000000,470.000000 -118.000000,462.000000 -110.000000C384.000000 -18.000000,267.000000 -18.000000,249.000000 -18.000000C177.000000 -18.000000,145.000000 -67.000000,145.000000 -129.000000C145.000000 -158.000000,159.000000 -267.000000,211.000000 -336.000000C249.000000 -385.000000,301.000000 -413.000000,351.000000 -413.000000C365.000000 -413.000000,413.000000 -411.000000,438.000000 -383.000000"></path>
    </g>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmmi7_109">
      <path style="fill-rule: evenodd;" d="M434.000000 -81.000000C429.000000 -61.000000,420.000000 -27.000000,420.000000 -22.000000C420.000000 -0.000000,438.000000 10.000000,454.000000 10.000000C472.000000 10.000000,488.000000 -3.000000,493.000000 -12.000000C498.000000 -21.000000,506.000000 -53.000000,511.000000 -74.000000C516.000000 -93.000000,527.000000 -139.000000,533.000000 -164.000000C539.000000 -186.000000,545.000000 -208.000000,550.000000 -231.000000C561.000000 -274.000000,561.000000 -276.000000,581.000000 -307.000000C613.000000 -356.000000,663.000000 -413.000000,741.000000 -413.000000C797.000000 -413.000000,800.000000 -367.000000,800.000000 -343.000000C800.000000 -283.000000,757.000000 -172.000000,741.000000 -130.000000C730.000000 -102.000000,726.000000 -93.000000,726.000000 -76.000000C726.000000 -23.000000,770.000000 10.000000,821.000000 10.000000C921.000000 10.000000,965.000000 -128.000000,965.000000 -143.000000C965.000000 -156.000000,952.000000 -156.000000,949.000000 -156.000000C935.000000 -156.000000,934.000000 -150.000000,930.000000 -139.000000C907.000000 -59.000000,864.000000 -18.000000,824.000000 -18.000000C803.000000 -18.000000,799.000000 -32.000000,799.000000 -53.000000C799.000000 -76.000000,804.000000 -89.000000,822.000000 -134.000000C834.000000 -165.000000,875.000000 -271.000000,875.000000 -327.000000C875.000000 -343.000000,875.000000 -385.000000,838.000000 -414.000000C821.000000 -427.000000,792.000000 -441.000000,745.000000 -441.000000C655.000000 -441.000000,600.000000 -382.000000,568.000000 -340.000000C560.000000 -425.000000,489.000000 -441.000000,438.000000 -441.000000C355.000000 -441.000000,299.000000 -390.000000,269.000000 -350.000000C262.000000 -419.000000,203.000000 -441.000000,162.000000 -441.000000C119.000000 -441.000000,96.000000 -410.000000,83.000000 -387.000000C61.000000 -350.000000,47.000000 -293.000000,47.000000 -288.000000C47.000000 -275.000000,61.000000 -275.000000,64.000000 -275.000000C78.000000 -275.000000,79.000000 -278.000000,86.000000 -305.000000C101.000000 -364.000000,120.000000 -413.000000,159.000000 -413.000000C185.000000 -413.000000,192.000000 -391.000000,192.000000 -364.000000C192.000000 -345.000000,183.000000 -308.000000,176.000000 -281.000000C169.000000 -254.000000,159.000000 -213.000000,154.000000 -191.000000L122.000000 -63.000000C118.000000 -50.000000,112.000000 -25.000000,112.000000 -22.000000C112.000000 -0.000000,130.000000 10.000000,146.000000 10.000000C164.000000 10.000000,180.000000 -3.000000,185.000000 -12.000000C190.000000 -21.000000,198.000000 -53.000000,203.000000 -74.000000C208.000000 -93.000000,219.000000 -139.000000,225.000000 -164.000000C231.000000 -186.000000,237.000000 -208.000000,242.000000 -231.000000C253.000000 -272.000000,255.000000 -280.000000,284.000000 -321.000000C312.000000 -361.000000,359.000000 -413.000000,434.000000 -413.000000C492.000000 -413.000000,493.000000 -362.000000,493.000000 -343.000000C493.000000 -318.000000,490.000000 -305.000000,476.000000 -249.000000"></path>
    </g>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmmi7_115">
      <path style="fill-rule: evenodd;" d="M431.000000 -376.000000C405.000000 -370.000000,389.000000 -349.000000,389.000000 -329.000000C389.000000 -306.000000,409.000000 -297.000000,422.000000 -297.000000C432.000000 -297.000000,470.000000 -303.000000,470.000000 -354.000000C470.000000 -419.000000,398.000000 -441.000000,337.000000 -441.000000C181.000000 -441.000000,153.000000 -326.000000,153.000000 -295.000000C153.000000 -258.000000,174.000000 -234.000000,188.000000 -222.000000C214.000000 -202.000000,232.000000 -198.000000,301.000000 -186.000000C322.000000 -182.000000,386.000000 -170.000000,386.000000 -120.000000C386.000000 -103.000000,375.000000 -65.000000,333.000000 -40.000000C294.000000 -18.000000,245.000000 -18.000000,233.000000 -18.000000C193.000000 -18.000000,136.000000 -27.000000,113.000000 -60.000000C146.000000 -64.000000,168.000000 -89.000000,168.000000 -117.000000C168.000000 -142.000000,150.000000 -154.000000,129.000000 -154.000000C100.000000 -154.000000,71.000000 -131.000000,71.000000 -87.000000C71.000000 -27.000000,135.000000 10.000000,232.000000 10.000000C416.000000 10.000000,450.000000 -116.000000,450.000000 -155.000000C450.000000 -247.000000,349.000000 -265.000000,312.000000 -272.000000C303.000000 -274.000000,278.000000 -278.000000,272.000000 -280.000000C235.000000 -287.000000,217.000000 -308.000000,217.000000 -330.000000C217.000000 -353.000000,235.000000 -380.000000,257.000000 -394.000000C284.000000 -411.000000,319.000000 -413.000000,336.000000 -413.000000C357.000000 -413.000000,409.000000 -410.000000,431.000000 -376.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmbx10_80">
      <path style="fill-rule: evenodd;" d="M289.000000 -302.000000L466.000000 -302.000000C605.000000 -302.000000,721.000000 -374.000000,721.000000 -491.000000C721.000000 -601.000000,622.000000 -686.000000,456.000000 -686.000000L39.000000 -686.000000L39.000000 -639.000000L147.000000 -639.000000L147.000000 -47.000000L39.000000 -47.000000L39.000000 -0.000000L218.000000 -0.000000L77.000000 -3.000000L175.000000 -3.000000L218.000000 -3.000000L261.000000 -3.000000L359.000000 -3.000000L397.000000 -0.000000L397.000000 -47.000000L289.000000 -47.000000M417.000000 -343.000000L283.000000 -343.000000L283.000000 -639.000000L418.000000 -639.000000C568.000000 -639.000000,568.000000 -563.000000,568.000000 -491.000000C568.000000 -420.000000,568.000000 -343.000000,417.000000 -343.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.568680 5.708572)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi7_115"></use>
    <use xlink:href="#GLYPHcmmi7_99" x="3.774382"></use>
    <use xlink:href="#GLYPHcmmi7_115" x="7.348182"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,19.095001 12.704590)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmbx10_80"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,31.625763 15.095642)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi7_109"></use>
    <use xlink:href="#GLYPHcmmi7_99" x="7.096230"></use>
    <use xlink:href="#GLYPHcmmi7_115" x="10.670030"></use>
  </g>
</svg></span>, where
<i>scs</i> denote the coordinate system of the scene (which often is
identical with the coordinate system of the sensor, the camera coordinate
system) and <i>mcs</i> the model coordinate system (which is a 3D world
coordinate system), see <a href="toc_transformations_poses.html">Transformations / Poses</a> and
<code>“Solution Guide III-C - 3D Vision”</code>.
Thereby, the pose refers to the original coordinate system of the 3D object
model that was passed to <a href="create_surface_model.html"><code><span data-if="hdevelop" style="display:inline">create_surface_model</span><span data-if="c" style="display:none">create_surface_model</span><span data-if="cpp" style="display:none">CreateSurfaceModel</span><span data-if="com" style="display:none">CreateSurfaceModel</span><span data-if="dotnet" style="display:none">CreateSurfaceModel</span><span data-if="python" style="display:none">create_surface_model</span></code></a>.
</p>
<p>The output parameter <a href="#Score"><i><code><span data-if="hdevelop" style="display:inline">Score</span><span data-if="c" style="display:none">Score</span><span data-if="cpp" style="display:none">Score</span><span data-if="com" style="display:none">Score</span><span data-if="dotnet" style="display:none">score</span><span data-if="python" style="display:none">score</span></code></i></a> returns a score for each match.
Its value and interpretation differs for the cases distinguished below.
</p>
<ul>
<li>
<p> <b>With pose refinement</b>
</p>
<p>For a matching with pose refinement, the score depends on whether
edge-support was activated:
</p>
<ul>
<li>
<p> Without edge-support, compute the surface fraction, i.e. the
approximate fraction of the object's surface that is visible in
the scene. This is done by counting the number of model points
that have a corresponding scene point and dividing this number
either by:
</p>
<ul>
<li>
<p> the total number of points on the model, if the
surface-based model is not prepared for view-based score
computation
</p>
<p>or by:
</p>
</li>
<li>
<p> the maximum number of potentially visible model points based
on the current viewpoint, if the surface-based model is prepared
for view-based score computation.
</p>
</li>
</ul>

<p><span title="2" style="vertical-align:-0.231083em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="6.30238em" height="0.941243em" viewBox="0 0 100.838150 15.059891">
<!-- Original BoundingBox: -50.419083 -7.529938 50.419067 7.529953 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_48">
      <path style="fill-rule: evenodd;" d="M460.000000 -320.000000C460.000000 -400.000000,455.000000 -480.000000,420.000000 -554.000000C374.000000 -650.000000,292.000000 -666.000000,250.000000 -666.000000C190.000000 -666.000000,117.000000 -640.000000,76.000000 -547.000000C44.000000 -478.000000,39.000000 -400.000000,39.000000 -320.000000C39.000000 -245.000000,43.000000 -155.000000,84.000000 -79.000000C127.000000 2.000000,200.000000 22.000000,249.000000 22.000000C303.000000 22.000000,379.000000 1.000000,423.000000 -94.000000C455.000000 -163.000000,460.000000 -241.000000,460.000000 -320.000000M249.000000 -0.000000C210.000000 -0.000000,151.000000 -25.000000,133.000000 -121.000000C122.000000 -181.000000,122.000000 -273.000000,122.000000 -332.000000C122.000000 -396.000000,122.000000 -462.000000,130.000000 -516.000000C149.000000 -635.000000,224.000000 -644.000000,249.000000 -644.000000C282.000000 -644.000000,348.000000 -626.000000,367.000000 -527.000000C377.000000 -471.000000,377.000000 -395.000000,377.000000 -332.000000C377.000000 -257.000000,377.000000 -189.000000,366.000000 -125.000000C351.000000 -30.000000,294.000000 -0.000000,249.000000 -0.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_49">
      <path style="fill-rule: evenodd;" d="M294.000000 -640.000000C294.000000 -664.000000,294.000000 -666.000000,271.000000 -666.000000C209.000000 -602.000000,121.000000 -602.000000,89.000000 -602.000000L89.000000 -571.000000C109.000000 -571.000000,168.000000 -571.000000,220.000000 -597.000000L220.000000 -79.000000C220.000000 -43.000000,217.000000 -31.000000,127.000000 -31.000000L95.000000 -31.000000L95.000000 -0.000000L257.000000 -0.000000L130.000000 -3.000000L217.000000 -3.000000L257.000000 -3.000000L297.000000 -3.000000L384.000000 -3.000000L419.000000 -0.000000L419.000000 -31.000000L387.000000 -31.000000C297.000000 -31.000000,294.000000 -42.000000,294.000000 -79.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmsy10_20">
      <path style="fill-rule: evenodd;" d="M675.000000 -594.000000C686.000000 -599.000000,694.000000 -604.000000,694.000000 -616.000000C694.000000 -627.000000,686.000000 -636.000000,674.000000 -636.000000C669.000000 -636.000000,660.000000 -632.000000,656.000000 -630.000000L103.000000 -369.000000C86.000000 -361.000000,83.000000 -354.000000,83.000000 -346.000000C83.000000 -337.000000,89.000000 -330.000000,103.000000 -324.000000L656.000000 -64.000000C669.000000 -57.000000,671.000000 -57.000000,674.000000 -57.000000C685.000000 -57.000000,694.000000 -66.000000,694.000000 -77.000000C694.000000 -86.000000,690.000000 -92.000000,673.000000 -100.000000L150.000000 -346.000000M659.000000 137.000000C676.000000 137.000000,694.000000 137.000000,694.000000 117.000000C694.000000 97.000000,673.000000 97.000000,658.000000 97.000000L119.000000 97.000000C104.000000 97.000000,83.000000 97.000000,83.000000 117.000000C83.000000 137.000000,101.000000 137.000000,118.000000 137.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_83">
      <path style="fill-rule: evenodd;" d="M645.000000 -695.000000C645.000000 -698.000000,643.000000 -705.000000,634.000000 -705.000000C629.000000 -705.000000,628.000000 -704.000000,616.000000 -690.000000L568.000000 -633.000000C542.000000 -680.000000,490.000000 -705.000000,425.000000 -705.000000C298.000000 -705.000000,178.000000 -590.000000,178.000000 -469.000000C178.000000 -388.000000,231.000000 -342.000000,282.000000 -327.000000L389.000000 -299.000000C426.000000 -290.000000,481.000000 -275.000000,481.000000 -193.000000C481.000000 -103.000000,399.000000 -9.000000,301.000000 -9.000000C237.000000 -9.000000,126.000000 -31.000000,126.000000 -155.000000C126.000000 -179.000000,131.000000 -203.000000,132.000000 -209.000000C133.000000 -213.000000,134.000000 -214.000000,134.000000 -216.000000C134.000000 -226.000000,127.000000 -227.000000,122.000000 -227.000000C117.000000 -227.000000,115.000000 -226.000000,112.000000 -223.000000C108.000000 -219.000000,52.000000 9.000000,52.000000 12.000000C52.000000 18.000000,57.000000 22.000000,63.000000 22.000000C68.000000 22.000000,69.000000 21.000000,81.000000 7.000000L130.000000 -50.000000C173.000000 8.000000,241.000000 22.000000,299.000000 22.000000C435.000000 22.000000,553.000000 -111.000000,553.000000 -235.000000C553.000000 -304.000000,519.000000 -338.000000,504.000000 -352.000000C481.000000 -375.000000,466.000000 -379.000000,377.000000 -402.000000C355.000000 -408.000000,319.000000 -418.000000,310.000000 -420.000000C283.000000 -429.000000,249.000000 -458.000000,249.000000 -511.000000C249.000000 -592.000000,329.000000 -677.000000,424.000000 -677.000000C507.000000 -677.000000,568.000000 -634.000000,568.000000 -522.000000C568.000000 -490.000000,564.000000 -472.000000,564.000000 -466.000000C564.000000 -465.000000,564.000000 -456.000000,576.000000 -456.000000C586.000000 -456.000000,587.000000 -459.000000,591.000000 -476.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_99">
      <path style="fill-rule: evenodd;" d="M396.000000 -380.000000C380.000000 -380.000000,366.000000 -380.000000,352.000000 -366.000000C336.000000 -351.000000,334.000000 -334.000000,334.000000 -327.000000C334.000000 -303.000000,352.000000 -292.000000,371.000000 -292.000000C400.000000 -292.000000,427.000000 -316.000000,427.000000 -356.000000C427.000000 -405.000000,380.000000 -442.000000,309.000000 -442.000000C174.000000 -442.000000,41.000000 -299.000000,41.000000 -158.000000C41.000000 -68.000000,99.000000 11.000000,203.000000 11.000000C346.000000 11.000000,430.000000 -95.000000,430.000000 -107.000000C430.000000 -113.000000,424.000000 -120.000000,418.000000 -120.000000C413.000000 -120.000000,411.000000 -118.000000,405.000000 -110.000000C326.000000 -11.000000,217.000000 -11.000000,205.000000 -11.000000C142.000000 -11.000000,115.000000 -60.000000,115.000000 -120.000000C115.000000 -161.000000,135.000000 -258.000000,169.000000 -320.000000C200.000000 -377.000000,255.000000 -420.000000,310.000000 -420.000000C344.000000 -420.000000,382.000000 -407.000000,396.000000 -380.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_101">
      <path style="fill-rule: evenodd;" d="M187.000000 -231.000000C216.000000 -231.000000,290.000000 -233.000000,340.000000 -254.000000C410.000000 -284.000000,415.000000 -343.000000,415.000000 -357.000000C415.000000 -401.000000,377.000000 -442.000000,308.000000 -442.000000C197.000000 -442.000000,46.000000 -345.000000,46.000000 -170.000000C46.000000 -68.000000,105.000000 11.000000,203.000000 11.000000C346.000000 11.000000,430.000000 -95.000000,430.000000 -107.000000C430.000000 -113.000000,424.000000 -120.000000,418.000000 -120.000000C413.000000 -120.000000,411.000000 -118.000000,405.000000 -110.000000C326.000000 -11.000000,217.000000 -11.000000,205.000000 -11.000000C127.000000 -11.000000,118.000000 -95.000000,118.000000 -127.000000C118.000000 -139.000000,119.000000 -170.000000,134.000000 -231.000000M140.000000 -253.000000C179.000000 -405.000000,282.000000 -420.000000,308.000000 -420.000000C355.000000 -420.000000,382.000000 -391.000000,382.000000 -357.000000C382.000000 -253.000000,222.000000 -253.000000,181.000000 -253.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_111">
      <path style="fill-rule: evenodd;" d="M469.000000 -273.000000C469.000000 -377.000000,399.000000 -442.000000,309.000000 -442.000000C175.000000 -442.000000,41.000000 -300.000000,41.000000 -158.000000C41.000000 -59.000000,108.000000 11.000000,201.000000 11.000000C334.000000 11.000000,469.000000 -127.000000,469.000000 -273.000000M202.000000 -11.000000C159.000000 -11.000000,115.000000 -42.000000,115.000000 -120.000000C115.000000 -169.000000,141.000000 -277.000000,173.000000 -328.000000C223.000000 -405.000000,280.000000 -420.000000,308.000000 -420.000000C366.000000 -420.000000,396.000000 -372.000000,396.000000 -312.000000C396.000000 -273.000000,376.000000 -168.000000,338.000000 -103.000000C303.000000 -45.000000,248.000000 -11.000000,202.000000 -11.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_114">
      <path style="fill-rule: evenodd;" d="M88.000000 -59.000000C85.000000 -44.000000,79.000000 -21.000000,79.000000 -16.000000C79.000000 2.000000,93.000000 11.000000,108.000000 11.000000C120.000000 11.000000,138.000000 3.000000,145.000000 -17.000000C147.000000 -21.000000,181.000000 -157.000000,185.000000 -175.000000C193.000000 -208.000000,211.000000 -278.000000,217.000000 -305.000000C221.000000 -318.000000,249.000000 -365.000000,273.000000 -387.000000C281.000000 -394.000000,310.000000 -420.000000,353.000000 -420.000000C379.000000 -420.000000,394.000000 -408.000000,395.000000 -408.000000C365.000000 -403.000000,343.000000 -379.000000,343.000000 -353.000000C343.000000 -337.000000,354.000000 -318.000000,381.000000 -318.000000C408.000000 -318.000000,436.000000 -341.000000,436.000000 -377.000000C436.000000 -412.000000,404.000000 -442.000000,353.000000 -442.000000C288.000000 -442.000000,244.000000 -393.000000,225.000000 -365.000000C217.000000 -410.000000,181.000000 -442.000000,134.000000 -442.000000C88.000000 -442.000000,69.000000 -403.000000,60.000000 -385.000000C42.000000 -351.000000,29.000000 -291.000000,29.000000 -288.000000C29.000000 -278.000000,39.000000 -278.000000,41.000000 -278.000000C51.000000 -278.000000,52.000000 -279.000000,58.000000 -301.000000C75.000000 -372.000000,95.000000 -420.000000,131.000000 -420.000000C148.000000 -420.000000,162.000000 -412.000000,162.000000 -374.000000C162.000000 -353.000000,159.000000 -342.000000,146.000000 -290.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.596909 11.362564)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_48"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,12.994736 11.362564)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmsy10_20"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,29.820557 11.362564)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_83"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,40.513855 11.362564)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_99"></use>
    <use xlink:href="#GLYPHcmmi10_111" x="4.327635"></use>
    <use xlink:href="#GLYPHcmmi10_114" x="9.174935"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,62.772995 11.362564)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_101"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,74.622955 11.362564)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmsy10_20"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,91.448792 11.362564)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_49"></use>
  </g>
</svg></span>
</p>
</li>
<li>
<p> With edge-support, compute the geometric mean of the surface
fraction and the edge fraction. The surface fraction is affected
by whether the surface-based model is prepared for view-based score
computation or not, as explained above. The edge fraction is the number
of points from the sampled model edges that are aligned with
edges of the scene, divided by the maximum number of potentially
visible points of edges on the model.
Note that if the edges are extracted from multiple viewpoints, this
might lead to score greater than 1.
</p>
<p><span title="3" style="vertical-align:-0.231083em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="6.30238em" height="0.941243em" viewBox="0 0 100.838150 15.059891">
<!-- Original BoundingBox: -50.419083 -7.529938 50.419067 7.529953 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_48">
      <path style="fill-rule: evenodd;" d="M460.000000 -320.000000C460.000000 -400.000000,455.000000 -480.000000,420.000000 -554.000000C374.000000 -650.000000,292.000000 -666.000000,250.000000 -666.000000C190.000000 -666.000000,117.000000 -640.000000,76.000000 -547.000000C44.000000 -478.000000,39.000000 -400.000000,39.000000 -320.000000C39.000000 -245.000000,43.000000 -155.000000,84.000000 -79.000000C127.000000 2.000000,200.000000 22.000000,249.000000 22.000000C303.000000 22.000000,379.000000 1.000000,423.000000 -94.000000C455.000000 -163.000000,460.000000 -241.000000,460.000000 -320.000000M249.000000 -0.000000C210.000000 -0.000000,151.000000 -25.000000,133.000000 -121.000000C122.000000 -181.000000,122.000000 -273.000000,122.000000 -332.000000C122.000000 -396.000000,122.000000 -462.000000,130.000000 -516.000000C149.000000 -635.000000,224.000000 -644.000000,249.000000 -644.000000C282.000000 -644.000000,348.000000 -626.000000,367.000000 -527.000000C377.000000 -471.000000,377.000000 -395.000000,377.000000 -332.000000C377.000000 -257.000000,377.000000 -189.000000,366.000000 -125.000000C351.000000 -30.000000,294.000000 -0.000000,249.000000 -0.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_49">
      <path style="fill-rule: evenodd;" d="M294.000000 -640.000000C294.000000 -664.000000,294.000000 -666.000000,271.000000 -666.000000C209.000000 -602.000000,121.000000 -602.000000,89.000000 -602.000000L89.000000 -571.000000C109.000000 -571.000000,168.000000 -571.000000,220.000000 -597.000000L220.000000 -79.000000C220.000000 -43.000000,217.000000 -31.000000,127.000000 -31.000000L95.000000 -31.000000L95.000000 -0.000000L257.000000 -0.000000L130.000000 -3.000000L217.000000 -3.000000L257.000000 -3.000000L297.000000 -3.000000L384.000000 -3.000000L419.000000 -0.000000L419.000000 -31.000000L387.000000 -31.000000C297.000000 -31.000000,294.000000 -42.000000,294.000000 -79.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmsy10_20">
      <path style="fill-rule: evenodd;" d="M675.000000 -594.000000C686.000000 -599.000000,694.000000 -604.000000,694.000000 -616.000000C694.000000 -627.000000,686.000000 -636.000000,674.000000 -636.000000C669.000000 -636.000000,660.000000 -632.000000,656.000000 -630.000000L103.000000 -369.000000C86.000000 -361.000000,83.000000 -354.000000,83.000000 -346.000000C83.000000 -337.000000,89.000000 -330.000000,103.000000 -324.000000L656.000000 -64.000000C669.000000 -57.000000,671.000000 -57.000000,674.000000 -57.000000C685.000000 -57.000000,694.000000 -66.000000,694.000000 -77.000000C694.000000 -86.000000,690.000000 -92.000000,673.000000 -100.000000L150.000000 -346.000000M659.000000 137.000000C676.000000 137.000000,694.000000 137.000000,694.000000 117.000000C694.000000 97.000000,673.000000 97.000000,658.000000 97.000000L119.000000 97.000000C104.000000 97.000000,83.000000 97.000000,83.000000 117.000000C83.000000 137.000000,101.000000 137.000000,118.000000 137.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_83">
      <path style="fill-rule: evenodd;" d="M645.000000 -695.000000C645.000000 -698.000000,643.000000 -705.000000,634.000000 -705.000000C629.000000 -705.000000,628.000000 -704.000000,616.000000 -690.000000L568.000000 -633.000000C542.000000 -680.000000,490.000000 -705.000000,425.000000 -705.000000C298.000000 -705.000000,178.000000 -590.000000,178.000000 -469.000000C178.000000 -388.000000,231.000000 -342.000000,282.000000 -327.000000L389.000000 -299.000000C426.000000 -290.000000,481.000000 -275.000000,481.000000 -193.000000C481.000000 -103.000000,399.000000 -9.000000,301.000000 -9.000000C237.000000 -9.000000,126.000000 -31.000000,126.000000 -155.000000C126.000000 -179.000000,131.000000 -203.000000,132.000000 -209.000000C133.000000 -213.000000,134.000000 -214.000000,134.000000 -216.000000C134.000000 -226.000000,127.000000 -227.000000,122.000000 -227.000000C117.000000 -227.000000,115.000000 -226.000000,112.000000 -223.000000C108.000000 -219.000000,52.000000 9.000000,52.000000 12.000000C52.000000 18.000000,57.000000 22.000000,63.000000 22.000000C68.000000 22.000000,69.000000 21.000000,81.000000 7.000000L130.000000 -50.000000C173.000000 8.000000,241.000000 22.000000,299.000000 22.000000C435.000000 22.000000,553.000000 -111.000000,553.000000 -235.000000C553.000000 -304.000000,519.000000 -338.000000,504.000000 -352.000000C481.000000 -375.000000,466.000000 -379.000000,377.000000 -402.000000C355.000000 -408.000000,319.000000 -418.000000,310.000000 -420.000000C283.000000 -429.000000,249.000000 -458.000000,249.000000 -511.000000C249.000000 -592.000000,329.000000 -677.000000,424.000000 -677.000000C507.000000 -677.000000,568.000000 -634.000000,568.000000 -522.000000C568.000000 -490.000000,564.000000 -472.000000,564.000000 -466.000000C564.000000 -465.000000,564.000000 -456.000000,576.000000 -456.000000C586.000000 -456.000000,587.000000 -459.000000,591.000000 -476.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_99">
      <path style="fill-rule: evenodd;" d="M396.000000 -380.000000C380.000000 -380.000000,366.000000 -380.000000,352.000000 -366.000000C336.000000 -351.000000,334.000000 -334.000000,334.000000 -327.000000C334.000000 -303.000000,352.000000 -292.000000,371.000000 -292.000000C400.000000 -292.000000,427.000000 -316.000000,427.000000 -356.000000C427.000000 -405.000000,380.000000 -442.000000,309.000000 -442.000000C174.000000 -442.000000,41.000000 -299.000000,41.000000 -158.000000C41.000000 -68.000000,99.000000 11.000000,203.000000 11.000000C346.000000 11.000000,430.000000 -95.000000,430.000000 -107.000000C430.000000 -113.000000,424.000000 -120.000000,418.000000 -120.000000C413.000000 -120.000000,411.000000 -118.000000,405.000000 -110.000000C326.000000 -11.000000,217.000000 -11.000000,205.000000 -11.000000C142.000000 -11.000000,115.000000 -60.000000,115.000000 -120.000000C115.000000 -161.000000,135.000000 -258.000000,169.000000 -320.000000C200.000000 -377.000000,255.000000 -420.000000,310.000000 -420.000000C344.000000 -420.000000,382.000000 -407.000000,396.000000 -380.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_101">
      <path style="fill-rule: evenodd;" d="M187.000000 -231.000000C216.000000 -231.000000,290.000000 -233.000000,340.000000 -254.000000C410.000000 -284.000000,415.000000 -343.000000,415.000000 -357.000000C415.000000 -401.000000,377.000000 -442.000000,308.000000 -442.000000C197.000000 -442.000000,46.000000 -345.000000,46.000000 -170.000000C46.000000 -68.000000,105.000000 11.000000,203.000000 11.000000C346.000000 11.000000,430.000000 -95.000000,430.000000 -107.000000C430.000000 -113.000000,424.000000 -120.000000,418.000000 -120.000000C413.000000 -120.000000,411.000000 -118.000000,405.000000 -110.000000C326.000000 -11.000000,217.000000 -11.000000,205.000000 -11.000000C127.000000 -11.000000,118.000000 -95.000000,118.000000 -127.000000C118.000000 -139.000000,119.000000 -170.000000,134.000000 -231.000000M140.000000 -253.000000C179.000000 -405.000000,282.000000 -420.000000,308.000000 -420.000000C355.000000 -420.000000,382.000000 -391.000000,382.000000 -357.000000C382.000000 -253.000000,222.000000 -253.000000,181.000000 -253.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_111">
      <path style="fill-rule: evenodd;" d="M469.000000 -273.000000C469.000000 -377.000000,399.000000 -442.000000,309.000000 -442.000000C175.000000 -442.000000,41.000000 -300.000000,41.000000 -158.000000C41.000000 -59.000000,108.000000 11.000000,201.000000 11.000000C334.000000 11.000000,469.000000 -127.000000,469.000000 -273.000000M202.000000 -11.000000C159.000000 -11.000000,115.000000 -42.000000,115.000000 -120.000000C115.000000 -169.000000,141.000000 -277.000000,173.000000 -328.000000C223.000000 -405.000000,280.000000 -420.000000,308.000000 -420.000000C366.000000 -420.000000,396.000000 -372.000000,396.000000 -312.000000C396.000000 -273.000000,376.000000 -168.000000,338.000000 -103.000000C303.000000 -45.000000,248.000000 -11.000000,202.000000 -11.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_114">
      <path style="fill-rule: evenodd;" d="M88.000000 -59.000000C85.000000 -44.000000,79.000000 -21.000000,79.000000 -16.000000C79.000000 2.000000,93.000000 11.000000,108.000000 11.000000C120.000000 11.000000,138.000000 3.000000,145.000000 -17.000000C147.000000 -21.000000,181.000000 -157.000000,185.000000 -175.000000C193.000000 -208.000000,211.000000 -278.000000,217.000000 -305.000000C221.000000 -318.000000,249.000000 -365.000000,273.000000 -387.000000C281.000000 -394.000000,310.000000 -420.000000,353.000000 -420.000000C379.000000 -420.000000,394.000000 -408.000000,395.000000 -408.000000C365.000000 -403.000000,343.000000 -379.000000,343.000000 -353.000000C343.000000 -337.000000,354.000000 -318.000000,381.000000 -318.000000C408.000000 -318.000000,436.000000 -341.000000,436.000000 -377.000000C436.000000 -412.000000,404.000000 -442.000000,353.000000 -442.000000C288.000000 -442.000000,244.000000 -393.000000,225.000000 -365.000000C217.000000 -410.000000,181.000000 -442.000000,134.000000 -442.000000C88.000000 -442.000000,69.000000 -403.000000,60.000000 -385.000000C42.000000 -351.000000,29.000000 -291.000000,29.000000 -288.000000C29.000000 -278.000000,39.000000 -278.000000,41.000000 -278.000000C51.000000 -278.000000,52.000000 -279.000000,58.000000 -301.000000C75.000000 -372.000000,95.000000 -420.000000,131.000000 -420.000000C148.000000 -420.000000,162.000000 -412.000000,162.000000 -374.000000C162.000000 -353.000000,159.000000 -342.000000,146.000000 -290.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.596909 11.362564)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_48"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,12.994736 11.362564)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmsy10_20"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,29.820557 11.362564)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_83"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,40.513855 11.362564)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_99"></use>
    <use xlink:href="#GLYPHcmmi10_111" x="4.327635"></use>
    <use xlink:href="#GLYPHcmmi10_114" x="9.174935"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,62.772995 11.362564)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_101"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,74.622955 11.362564)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmsy10_20"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,91.448792 11.362564)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_49"></use>
  </g>
</svg></span>
(if the scene was acquired from one single viewpoint)</p>
<p>
<span title="4" style="vertical-align:-0.231083em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="6.71334em" height="0.941243em" viewBox="0 0 107.413361 15.059891">
<!-- Original BoundingBox: -53.706680 -7.529938 53.706680 7.529953 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_48">
      <path style="fill-rule: evenodd;" d="M460.000000 -320.000000C460.000000 -400.000000,455.000000 -480.000000,420.000000 -554.000000C374.000000 -650.000000,292.000000 -666.000000,250.000000 -666.000000C190.000000 -666.000000,117.000000 -640.000000,76.000000 -547.000000C44.000000 -478.000000,39.000000 -400.000000,39.000000 -320.000000C39.000000 -245.000000,43.000000 -155.000000,84.000000 -79.000000C127.000000 2.000000,200.000000 22.000000,249.000000 22.000000C303.000000 22.000000,379.000000 1.000000,423.000000 -94.000000C455.000000 -163.000000,460.000000 -241.000000,460.000000 -320.000000M249.000000 -0.000000C210.000000 -0.000000,151.000000 -25.000000,133.000000 -121.000000C122.000000 -181.000000,122.000000 -273.000000,122.000000 -332.000000C122.000000 -396.000000,122.000000 -462.000000,130.000000 -516.000000C149.000000 -635.000000,224.000000 -644.000000,249.000000 -644.000000C282.000000 -644.000000,348.000000 -626.000000,367.000000 -527.000000C377.000000 -471.000000,377.000000 -395.000000,377.000000 -332.000000C377.000000 -257.000000,377.000000 -189.000000,366.000000 -125.000000C351.000000 -30.000000,294.000000 -0.000000,249.000000 -0.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmsy10_20">
      <path style="fill-rule: evenodd;" d="M675.000000 -594.000000C686.000000 -599.000000,694.000000 -604.000000,694.000000 -616.000000C694.000000 -627.000000,686.000000 -636.000000,674.000000 -636.000000C669.000000 -636.000000,660.000000 -632.000000,656.000000 -630.000000L103.000000 -369.000000C86.000000 -361.000000,83.000000 -354.000000,83.000000 -346.000000C83.000000 -337.000000,89.000000 -330.000000,103.000000 -324.000000L656.000000 -64.000000C669.000000 -57.000000,671.000000 -57.000000,674.000000 -57.000000C685.000000 -57.000000,694.000000 -66.000000,694.000000 -77.000000C694.000000 -86.000000,690.000000 -92.000000,673.000000 -100.000000L150.000000 -346.000000M659.000000 137.000000C676.000000 137.000000,694.000000 137.000000,694.000000 117.000000C694.000000 97.000000,673.000000 97.000000,658.000000 97.000000L119.000000 97.000000C104.000000 97.000000,83.000000 97.000000,83.000000 117.000000C83.000000 137.000000,101.000000 137.000000,118.000000 137.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_78">
      <path style="fill-rule: evenodd;" d="M756.000000 -578.000000C766.000000 -618.000000,784.000000 -649.000000,864.000000 -652.000000C869.000000 -652.000000,881.000000 -653.000000,881.000000 -672.000000C881.000000 -673.000000,881.000000 -683.000000,868.000000 -683.000000L767.000000 -683.000000L835.000000 -683.000000L800.000000 -680.000000L767.000000 -680.000000L733.000000 -680.000000L698.000000 -683.000000L665.000000 -683.000000C659.000000 -683.000000,647.000000 -683.000000,647.000000 -663.000000C647.000000 -652.000000,657.000000 -652.000000,665.000000 -652.000000C722.000000 -651.000000,733.000000 -630.000000,733.000000 -608.000000C733.000000 -605.000000,731.000000 -590.000000,730.000000 -587.000000L618.000000 -142.000000L397.000000 -664.000000C389.000000 -682.000000,388.000000 -683.000000,365.000000 -683.000000L231.000000 -683.000000C211.000000 -683.000000,202.000000 -683.000000,202.000000 -663.000000C202.000000 -652.000000,211.000000 -652.000000,230.000000 -652.000000C235.000000 -652.000000,298.000000 -652.000000,298.000000 -643.000000L164.000000 -106.000000C154.000000 -66.000000,137.000000 -34.000000,56.000000 -31.000000C50.000000 -31.000000,39.000000 -30.000000,39.000000 -11.000000C39.000000 -4.000000,44.000000 -0.000000,52.000000 -0.000000L152.000000 -0.000000L84.000000 -0.000000L119.000000 -3.000000L152.000000 -3.000000L186.000000 -3.000000L222.000000 -0.000000L255.000000 -0.000000C260.000000 -0.000000,273.000000 -0.000000,273.000000 -20.000000C273.000000 -30.000000,264.000000 -31.000000,253.000000 -31.000000C195.000000 -33.000000,187.000000 -55.000000,187.000000 -75.000000C187.000000 -82.000000,188.000000 -87.000000,191.000000 -98.000000L323.000000 -626.000000C327.000000 -620.000000,327.000000 -618.000000,332.000000 -608.000000L581.000000 -19.000000C588.000000 -2.000000,591.000000 -0.000000,600.000000 -0.000000C611.000000 -0.000000,611.000000 -3.000000,616.000000 -21.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_83">
      <path style="fill-rule: evenodd;" d="M645.000000 -695.000000C645.000000 -698.000000,643.000000 -705.000000,634.000000 -705.000000C629.000000 -705.000000,628.000000 -704.000000,616.000000 -690.000000L568.000000 -633.000000C542.000000 -680.000000,490.000000 -705.000000,425.000000 -705.000000C298.000000 -705.000000,178.000000 -590.000000,178.000000 -469.000000C178.000000 -388.000000,231.000000 -342.000000,282.000000 -327.000000L389.000000 -299.000000C426.000000 -290.000000,481.000000 -275.000000,481.000000 -193.000000C481.000000 -103.000000,399.000000 -9.000000,301.000000 -9.000000C237.000000 -9.000000,126.000000 -31.000000,126.000000 -155.000000C126.000000 -179.000000,131.000000 -203.000000,132.000000 -209.000000C133.000000 -213.000000,134.000000 -214.000000,134.000000 -216.000000C134.000000 -226.000000,127.000000 -227.000000,122.000000 -227.000000C117.000000 -227.000000,115.000000 -226.000000,112.000000 -223.000000C108.000000 -219.000000,52.000000 9.000000,52.000000 12.000000C52.000000 18.000000,57.000000 22.000000,63.000000 22.000000C68.000000 22.000000,69.000000 21.000000,81.000000 7.000000L130.000000 -50.000000C173.000000 8.000000,241.000000 22.000000,299.000000 22.000000C435.000000 22.000000,553.000000 -111.000000,553.000000 -235.000000C553.000000 -304.000000,519.000000 -338.000000,504.000000 -352.000000C481.000000 -375.000000,466.000000 -379.000000,377.000000 -402.000000C355.000000 -408.000000,319.000000 -418.000000,310.000000 -420.000000C283.000000 -429.000000,249.000000 -458.000000,249.000000 -511.000000C249.000000 -592.000000,329.000000 -677.000000,424.000000 -677.000000C507.000000 -677.000000,568.000000 -634.000000,568.000000 -522.000000C568.000000 -490.000000,564.000000 -472.000000,564.000000 -466.000000C564.000000 -465.000000,564.000000 -456.000000,576.000000 -456.000000C586.000000 -456.000000,587.000000 -459.000000,591.000000 -476.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_99">
      <path style="fill-rule: evenodd;" d="M396.000000 -380.000000C380.000000 -380.000000,366.000000 -380.000000,352.000000 -366.000000C336.000000 -351.000000,334.000000 -334.000000,334.000000 -327.000000C334.000000 -303.000000,352.000000 -292.000000,371.000000 -292.000000C400.000000 -292.000000,427.000000 -316.000000,427.000000 -356.000000C427.000000 -405.000000,380.000000 -442.000000,309.000000 -442.000000C174.000000 -442.000000,41.000000 -299.000000,41.000000 -158.000000C41.000000 -68.000000,99.000000 11.000000,203.000000 11.000000C346.000000 11.000000,430.000000 -95.000000,430.000000 -107.000000C430.000000 -113.000000,424.000000 -120.000000,418.000000 -120.000000C413.000000 -120.000000,411.000000 -118.000000,405.000000 -110.000000C326.000000 -11.000000,217.000000 -11.000000,205.000000 -11.000000C142.000000 -11.000000,115.000000 -60.000000,115.000000 -120.000000C115.000000 -161.000000,135.000000 -258.000000,169.000000 -320.000000C200.000000 -377.000000,255.000000 -420.000000,310.000000 -420.000000C344.000000 -420.000000,382.000000 -407.000000,396.000000 -380.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_101">
      <path style="fill-rule: evenodd;" d="M187.000000 -231.000000C216.000000 -231.000000,290.000000 -233.000000,340.000000 -254.000000C410.000000 -284.000000,415.000000 -343.000000,415.000000 -357.000000C415.000000 -401.000000,377.000000 -442.000000,308.000000 -442.000000C197.000000 -442.000000,46.000000 -345.000000,46.000000 -170.000000C46.000000 -68.000000,105.000000 11.000000,203.000000 11.000000C346.000000 11.000000,430.000000 -95.000000,430.000000 -107.000000C430.000000 -113.000000,424.000000 -120.000000,418.000000 -120.000000C413.000000 -120.000000,411.000000 -118.000000,405.000000 -110.000000C326.000000 -11.000000,217.000000 -11.000000,205.000000 -11.000000C127.000000 -11.000000,118.000000 -95.000000,118.000000 -127.000000C118.000000 -139.000000,119.000000 -170.000000,134.000000 -231.000000M140.000000 -253.000000C179.000000 -405.000000,282.000000 -420.000000,308.000000 -420.000000C355.000000 -420.000000,382.000000 -391.000000,382.000000 -357.000000C382.000000 -253.000000,222.000000 -253.000000,181.000000 -253.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_111">
      <path style="fill-rule: evenodd;" d="M469.000000 -273.000000C469.000000 -377.000000,399.000000 -442.000000,309.000000 -442.000000C175.000000 -442.000000,41.000000 -300.000000,41.000000 -158.000000C41.000000 -59.000000,108.000000 11.000000,201.000000 11.000000C334.000000 11.000000,469.000000 -127.000000,469.000000 -273.000000M202.000000 -11.000000C159.000000 -11.000000,115.000000 -42.000000,115.000000 -120.000000C115.000000 -169.000000,141.000000 -277.000000,173.000000 -328.000000C223.000000 -405.000000,280.000000 -420.000000,308.000000 -420.000000C366.000000 -420.000000,396.000000 -372.000000,396.000000 -312.000000C396.000000 -273.000000,376.000000 -168.000000,338.000000 -103.000000C303.000000 -45.000000,248.000000 -11.000000,202.000000 -11.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_114">
      <path style="fill-rule: evenodd;" d="M88.000000 -59.000000C85.000000 -44.000000,79.000000 -21.000000,79.000000 -16.000000C79.000000 2.000000,93.000000 11.000000,108.000000 11.000000C120.000000 11.000000,138.000000 3.000000,145.000000 -17.000000C147.000000 -21.000000,181.000000 -157.000000,185.000000 -175.000000C193.000000 -208.000000,211.000000 -278.000000,217.000000 -305.000000C221.000000 -318.000000,249.000000 -365.000000,273.000000 -387.000000C281.000000 -394.000000,310.000000 -420.000000,353.000000 -420.000000C379.000000 -420.000000,394.000000 -408.000000,395.000000 -408.000000C365.000000 -403.000000,343.000000 -379.000000,343.000000 -353.000000C343.000000 -337.000000,354.000000 -318.000000,381.000000 -318.000000C408.000000 -318.000000,436.000000 -341.000000,436.000000 -377.000000C436.000000 -412.000000,404.000000 -442.000000,353.000000 -442.000000C288.000000 -442.000000,244.000000 -393.000000,225.000000 -365.000000C217.000000 -410.000000,181.000000 -442.000000,134.000000 -442.000000C88.000000 -442.000000,69.000000 -403.000000,60.000000 -385.000000C42.000000 -351.000000,29.000000 -291.000000,29.000000 -288.000000C29.000000 -278.000000,39.000000 -278.000000,41.000000 -278.000000C51.000000 -278.000000,52.000000 -279.000000,58.000000 -301.000000C75.000000 -372.000000,95.000000 -420.000000,131.000000 -420.000000C148.000000 -420.000000,162.000000 -412.000000,162.000000 -374.000000C162.000000 -353.000000,159.000000 -342.000000,146.000000 -290.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.309311 11.362564)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_48"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,12.707138 11.362564)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmsy10_20"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,29.532959 11.362564)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_83"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,40.226257 11.362564)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_99"></use>
    <use xlink:href="#GLYPHcmmi10_111" x="4.327635"></use>
    <use xlink:href="#GLYPHcmmi10_114" x="9.174935"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,62.485397 11.362564)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_101"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,74.335358 11.362564)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmsy10_20"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,91.161194 11.362564)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_78"></use>
  </g>
</svg></span>
(if the scene was merged from scenes that were acquired from N
different viewpoints)
</p>
</li>
</ul>

<p>Note that for the computation of the score after the sparse pose
refinement, the sampled scene points are used. For the
computation of the score after the dense pose refinement, all scene
points are used. Therefore, after the dense pose refinement, the
score values does not depend on the sampling distance of
the scene.
</p>
</li>
<li>
<p> <b>Without pose refinement</b>
</p>
<p>If only the first step, <code>Approximate Matching</code>, out of the three
steps described in <code>The three steps of the matching</code> takes place,
the possible score value and interpretation only differs whether there is
edge-support or not:
</p>
<ul>
<li>
<p> Without edge-support:
</p>
<p>The score is the approximate number of points from the subsampled
scene that lie on the found object.
</p>
<p><span title="5" style="vertical-align:-0.231083em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="4.4759em" height="0.941243em" viewBox="0 0 71.614349 15.059891">
<!-- Original BoundingBox: -35.807175 -7.529938 35.807175 7.529953 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_48">
      <path style="fill-rule: evenodd;" d="M460.000000 -320.000000C460.000000 -400.000000,455.000000 -480.000000,420.000000 -554.000000C374.000000 -650.000000,292.000000 -666.000000,250.000000 -666.000000C190.000000 -666.000000,117.000000 -640.000000,76.000000 -547.000000C44.000000 -478.000000,39.000000 -400.000000,39.000000 -320.000000C39.000000 -245.000000,43.000000 -155.000000,84.000000 -79.000000C127.000000 2.000000,200.000000 22.000000,249.000000 22.000000C303.000000 22.000000,379.000000 1.000000,423.000000 -94.000000C455.000000 -163.000000,460.000000 -241.000000,460.000000 -320.000000M249.000000 -0.000000C210.000000 -0.000000,151.000000 -25.000000,133.000000 -121.000000C122.000000 -181.000000,122.000000 -273.000000,122.000000 -332.000000C122.000000 -396.000000,122.000000 -462.000000,130.000000 -516.000000C149.000000 -635.000000,224.000000 -644.000000,249.000000 -644.000000C282.000000 -644.000000,348.000000 -626.000000,367.000000 -527.000000C377.000000 -471.000000,377.000000 -395.000000,377.000000 -332.000000C377.000000 -257.000000,377.000000 -189.000000,366.000000 -125.000000C351.000000 -30.000000,294.000000 -0.000000,249.000000 -0.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmsy10_21">
      <path style="fill-rule: evenodd;" d="M674.000000 -324.000000C688.000000 -330.000000,694.000000 -337.000000,694.000000 -346.000000C694.000000 -356.000000,690.000000 -362.000000,674.000000 -369.000000L123.000000 -629.000000C109.000000 -636.000000,105.000000 -636.000000,103.000000 -636.000000C91.000000 -636.000000,83.000000 -627.000000,83.000000 -616.000000C83.000000 -604.000000,91.000000 -599.000000,102.000000 -594.000000L627.000000 -347.000000L104.000000 -100.000000C84.000000 -91.000000,83.000000 -83.000000,83.000000 -77.000000C83.000000 -66.000000,92.000000 -57.000000,103.000000 -57.000000C106.000000 -57.000000,108.000000 -57.000000,121.000000 -64.000000M659.000000 137.000000C676.000000 137.000000,694.000000 137.000000,694.000000 117.000000C694.000000 97.000000,673.000000 97.000000,658.000000 97.000000L119.000000 97.000000C104.000000 97.000000,83.000000 97.000000,83.000000 117.000000C83.000000 137.000000,101.000000 137.000000,118.000000 137.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_83">
      <path style="fill-rule: evenodd;" d="M645.000000 -695.000000C645.000000 -698.000000,643.000000 -705.000000,634.000000 -705.000000C629.000000 -705.000000,628.000000 -704.000000,616.000000 -690.000000L568.000000 -633.000000C542.000000 -680.000000,490.000000 -705.000000,425.000000 -705.000000C298.000000 -705.000000,178.000000 -590.000000,178.000000 -469.000000C178.000000 -388.000000,231.000000 -342.000000,282.000000 -327.000000L389.000000 -299.000000C426.000000 -290.000000,481.000000 -275.000000,481.000000 -193.000000C481.000000 -103.000000,399.000000 -9.000000,301.000000 -9.000000C237.000000 -9.000000,126.000000 -31.000000,126.000000 -155.000000C126.000000 -179.000000,131.000000 -203.000000,132.000000 -209.000000C133.000000 -213.000000,134.000000 -214.000000,134.000000 -216.000000C134.000000 -226.000000,127.000000 -227.000000,122.000000 -227.000000C117.000000 -227.000000,115.000000 -226.000000,112.000000 -223.000000C108.000000 -219.000000,52.000000 9.000000,52.000000 12.000000C52.000000 18.000000,57.000000 22.000000,63.000000 22.000000C68.000000 22.000000,69.000000 21.000000,81.000000 7.000000L130.000000 -50.000000C173.000000 8.000000,241.000000 22.000000,299.000000 22.000000C435.000000 22.000000,553.000000 -111.000000,553.000000 -235.000000C553.000000 -304.000000,519.000000 -338.000000,504.000000 -352.000000C481.000000 -375.000000,466.000000 -379.000000,377.000000 -402.000000C355.000000 -408.000000,319.000000 -418.000000,310.000000 -420.000000C283.000000 -429.000000,249.000000 -458.000000,249.000000 -511.000000C249.000000 -592.000000,329.000000 -677.000000,424.000000 -677.000000C507.000000 -677.000000,568.000000 -634.000000,568.000000 -522.000000C568.000000 -490.000000,564.000000 -472.000000,564.000000 -466.000000C564.000000 -465.000000,564.000000 -456.000000,576.000000 -456.000000C586.000000 -456.000000,587.000000 -459.000000,591.000000 -476.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_99">
      <path style="fill-rule: evenodd;" d="M396.000000 -380.000000C380.000000 -380.000000,366.000000 -380.000000,352.000000 -366.000000C336.000000 -351.000000,334.000000 -334.000000,334.000000 -327.000000C334.000000 -303.000000,352.000000 -292.000000,371.000000 -292.000000C400.000000 -292.000000,427.000000 -316.000000,427.000000 -356.000000C427.000000 -405.000000,380.000000 -442.000000,309.000000 -442.000000C174.000000 -442.000000,41.000000 -299.000000,41.000000 -158.000000C41.000000 -68.000000,99.000000 11.000000,203.000000 11.000000C346.000000 11.000000,430.000000 -95.000000,430.000000 -107.000000C430.000000 -113.000000,424.000000 -120.000000,418.000000 -120.000000C413.000000 -120.000000,411.000000 -118.000000,405.000000 -110.000000C326.000000 -11.000000,217.000000 -11.000000,205.000000 -11.000000C142.000000 -11.000000,115.000000 -60.000000,115.000000 -120.000000C115.000000 -161.000000,135.000000 -258.000000,169.000000 -320.000000C200.000000 -377.000000,255.000000 -420.000000,310.000000 -420.000000C344.000000 -420.000000,382.000000 -407.000000,396.000000 -380.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_101">
      <path style="fill-rule: evenodd;" d="M187.000000 -231.000000C216.000000 -231.000000,290.000000 -233.000000,340.000000 -254.000000C410.000000 -284.000000,415.000000 -343.000000,415.000000 -357.000000C415.000000 -401.000000,377.000000 -442.000000,308.000000 -442.000000C197.000000 -442.000000,46.000000 -345.000000,46.000000 -170.000000C46.000000 -68.000000,105.000000 11.000000,203.000000 11.000000C346.000000 11.000000,430.000000 -95.000000,430.000000 -107.000000C430.000000 -113.000000,424.000000 -120.000000,418.000000 -120.000000C413.000000 -120.000000,411.000000 -118.000000,405.000000 -110.000000C326.000000 -11.000000,217.000000 -11.000000,205.000000 -11.000000C127.000000 -11.000000,118.000000 -95.000000,118.000000 -127.000000C118.000000 -139.000000,119.000000 -170.000000,134.000000 -231.000000M140.000000 -253.000000C179.000000 -405.000000,282.000000 -420.000000,308.000000 -420.000000C355.000000 -420.000000,382.000000 -391.000000,382.000000 -357.000000C382.000000 -253.000000,222.000000 -253.000000,181.000000 -253.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_111">
      <path style="fill-rule: evenodd;" d="M469.000000 -273.000000C469.000000 -377.000000,399.000000 -442.000000,309.000000 -442.000000C175.000000 -442.000000,41.000000 -300.000000,41.000000 -158.000000C41.000000 -59.000000,108.000000 11.000000,201.000000 11.000000C334.000000 11.000000,469.000000 -127.000000,469.000000 -273.000000M202.000000 -11.000000C159.000000 -11.000000,115.000000 -42.000000,115.000000 -120.000000C115.000000 -169.000000,141.000000 -277.000000,173.000000 -328.000000C223.000000 -405.000000,280.000000 -420.000000,308.000000 -420.000000C366.000000 -420.000000,396.000000 -372.000000,396.000000 -312.000000C396.000000 -273.000000,376.000000 -168.000000,338.000000 -103.000000C303.000000 -45.000000,248.000000 -11.000000,202.000000 -11.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_114">
      <path style="fill-rule: evenodd;" d="M88.000000 -59.000000C85.000000 -44.000000,79.000000 -21.000000,79.000000 -16.000000C79.000000 2.000000,93.000000 11.000000,108.000000 11.000000C120.000000 11.000000,138.000000 3.000000,145.000000 -17.000000C147.000000 -21.000000,181.000000 -157.000000,185.000000 -175.000000C193.000000 -208.000000,211.000000 -278.000000,217.000000 -305.000000C221.000000 -318.000000,249.000000 -365.000000,273.000000 -387.000000C281.000000 -394.000000,310.000000 -420.000000,353.000000 -420.000000C379.000000 -420.000000,394.000000 -408.000000,395.000000 -408.000000C365.000000 -403.000000,343.000000 -379.000000,343.000000 -353.000000C343.000000 -337.000000,354.000000 -318.000000,381.000000 -318.000000C408.000000 -318.000000,436.000000 -341.000000,436.000000 -377.000000C436.000000 -412.000000,404.000000 -442.000000,353.000000 -442.000000C288.000000 -442.000000,244.000000 -393.000000,225.000000 -365.000000C217.000000 -410.000000,181.000000 -442.000000,134.000000 -442.000000C88.000000 -442.000000,69.000000 -403.000000,60.000000 -385.000000C42.000000 -351.000000,29.000000 -291.000000,29.000000 -288.000000C29.000000 -278.000000,39.000000 -278.000000,41.000000 -278.000000C51.000000 -278.000000,52.000000 -279.000000,58.000000 -301.000000C75.000000 -372.000000,95.000000 -420.000000,131.000000 -420.000000C148.000000 -420.000000,162.000000 -412.000000,162.000000 -374.000000C162.000000 -353.000000,159.000000 -342.000000,146.000000 -290.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.208817 11.362564)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_83"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,10.901993 11.362564)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_99"></use>
    <use xlink:href="#GLYPHcmmi10_111" x="4.327635"></use>
    <use xlink:href="#GLYPHcmmi10_114" x="9.174935"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,33.161255 11.362564)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_101"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,45.011230 11.362564)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmsy10_21"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,61.837051 11.362564)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_48"></use>
  </g>
</svg></span>
</p>
</li>
<li>
<p> With edge-support:
</p>
<p>The score is the approximate number of points from the subsampled
scene that lie on the found object multiplied with the number of points
from the sampled scene edges that are aligned with edges of the model.
</p>
<p><span title="6" style="vertical-align:-0.231083em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="4.4759em" height="0.941243em" viewBox="0 0 71.614349 15.059891">
<!-- Original BoundingBox: -35.807175 -7.529938 35.807175 7.529953 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_48">
      <path style="fill-rule: evenodd;" d="M460.000000 -320.000000C460.000000 -400.000000,455.000000 -480.000000,420.000000 -554.000000C374.000000 -650.000000,292.000000 -666.000000,250.000000 -666.000000C190.000000 -666.000000,117.000000 -640.000000,76.000000 -547.000000C44.000000 -478.000000,39.000000 -400.000000,39.000000 -320.000000C39.000000 -245.000000,43.000000 -155.000000,84.000000 -79.000000C127.000000 2.000000,200.000000 22.000000,249.000000 22.000000C303.000000 22.000000,379.000000 1.000000,423.000000 -94.000000C455.000000 -163.000000,460.000000 -241.000000,460.000000 -320.000000M249.000000 -0.000000C210.000000 -0.000000,151.000000 -25.000000,133.000000 -121.000000C122.000000 -181.000000,122.000000 -273.000000,122.000000 -332.000000C122.000000 -396.000000,122.000000 -462.000000,130.000000 -516.000000C149.000000 -635.000000,224.000000 -644.000000,249.000000 -644.000000C282.000000 -644.000000,348.000000 -626.000000,367.000000 -527.000000C377.000000 -471.000000,377.000000 -395.000000,377.000000 -332.000000C377.000000 -257.000000,377.000000 -189.000000,366.000000 -125.000000C351.000000 -30.000000,294.000000 -0.000000,249.000000 -0.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmsy10_21">
      <path style="fill-rule: evenodd;" d="M674.000000 -324.000000C688.000000 -330.000000,694.000000 -337.000000,694.000000 -346.000000C694.000000 -356.000000,690.000000 -362.000000,674.000000 -369.000000L123.000000 -629.000000C109.000000 -636.000000,105.000000 -636.000000,103.000000 -636.000000C91.000000 -636.000000,83.000000 -627.000000,83.000000 -616.000000C83.000000 -604.000000,91.000000 -599.000000,102.000000 -594.000000L627.000000 -347.000000L104.000000 -100.000000C84.000000 -91.000000,83.000000 -83.000000,83.000000 -77.000000C83.000000 -66.000000,92.000000 -57.000000,103.000000 -57.000000C106.000000 -57.000000,108.000000 -57.000000,121.000000 -64.000000M659.000000 137.000000C676.000000 137.000000,694.000000 137.000000,694.000000 117.000000C694.000000 97.000000,673.000000 97.000000,658.000000 97.000000L119.000000 97.000000C104.000000 97.000000,83.000000 97.000000,83.000000 117.000000C83.000000 137.000000,101.000000 137.000000,118.000000 137.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_83">
      <path style="fill-rule: evenodd;" d="M645.000000 -695.000000C645.000000 -698.000000,643.000000 -705.000000,634.000000 -705.000000C629.000000 -705.000000,628.000000 -704.000000,616.000000 -690.000000L568.000000 -633.000000C542.000000 -680.000000,490.000000 -705.000000,425.000000 -705.000000C298.000000 -705.000000,178.000000 -590.000000,178.000000 -469.000000C178.000000 -388.000000,231.000000 -342.000000,282.000000 -327.000000L389.000000 -299.000000C426.000000 -290.000000,481.000000 -275.000000,481.000000 -193.000000C481.000000 -103.000000,399.000000 -9.000000,301.000000 -9.000000C237.000000 -9.000000,126.000000 -31.000000,126.000000 -155.000000C126.000000 -179.000000,131.000000 -203.000000,132.000000 -209.000000C133.000000 -213.000000,134.000000 -214.000000,134.000000 -216.000000C134.000000 -226.000000,127.000000 -227.000000,122.000000 -227.000000C117.000000 -227.000000,115.000000 -226.000000,112.000000 -223.000000C108.000000 -219.000000,52.000000 9.000000,52.000000 12.000000C52.000000 18.000000,57.000000 22.000000,63.000000 22.000000C68.000000 22.000000,69.000000 21.000000,81.000000 7.000000L130.000000 -50.000000C173.000000 8.000000,241.000000 22.000000,299.000000 22.000000C435.000000 22.000000,553.000000 -111.000000,553.000000 -235.000000C553.000000 -304.000000,519.000000 -338.000000,504.000000 -352.000000C481.000000 -375.000000,466.000000 -379.000000,377.000000 -402.000000C355.000000 -408.000000,319.000000 -418.000000,310.000000 -420.000000C283.000000 -429.000000,249.000000 -458.000000,249.000000 -511.000000C249.000000 -592.000000,329.000000 -677.000000,424.000000 -677.000000C507.000000 -677.000000,568.000000 -634.000000,568.000000 -522.000000C568.000000 -490.000000,564.000000 -472.000000,564.000000 -466.000000C564.000000 -465.000000,564.000000 -456.000000,576.000000 -456.000000C586.000000 -456.000000,587.000000 -459.000000,591.000000 -476.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_99">
      <path style="fill-rule: evenodd;" d="M396.000000 -380.000000C380.000000 -380.000000,366.000000 -380.000000,352.000000 -366.000000C336.000000 -351.000000,334.000000 -334.000000,334.000000 -327.000000C334.000000 -303.000000,352.000000 -292.000000,371.000000 -292.000000C400.000000 -292.000000,427.000000 -316.000000,427.000000 -356.000000C427.000000 -405.000000,380.000000 -442.000000,309.000000 -442.000000C174.000000 -442.000000,41.000000 -299.000000,41.000000 -158.000000C41.000000 -68.000000,99.000000 11.000000,203.000000 11.000000C346.000000 11.000000,430.000000 -95.000000,430.000000 -107.000000C430.000000 -113.000000,424.000000 -120.000000,418.000000 -120.000000C413.000000 -120.000000,411.000000 -118.000000,405.000000 -110.000000C326.000000 -11.000000,217.000000 -11.000000,205.000000 -11.000000C142.000000 -11.000000,115.000000 -60.000000,115.000000 -120.000000C115.000000 -161.000000,135.000000 -258.000000,169.000000 -320.000000C200.000000 -377.000000,255.000000 -420.000000,310.000000 -420.000000C344.000000 -420.000000,382.000000 -407.000000,396.000000 -380.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_101">
      <path style="fill-rule: evenodd;" d="M187.000000 -231.000000C216.000000 -231.000000,290.000000 -233.000000,340.000000 -254.000000C410.000000 -284.000000,415.000000 -343.000000,415.000000 -357.000000C415.000000 -401.000000,377.000000 -442.000000,308.000000 -442.000000C197.000000 -442.000000,46.000000 -345.000000,46.000000 -170.000000C46.000000 -68.000000,105.000000 11.000000,203.000000 11.000000C346.000000 11.000000,430.000000 -95.000000,430.000000 -107.000000C430.000000 -113.000000,424.000000 -120.000000,418.000000 -120.000000C413.000000 -120.000000,411.000000 -118.000000,405.000000 -110.000000C326.000000 -11.000000,217.000000 -11.000000,205.000000 -11.000000C127.000000 -11.000000,118.000000 -95.000000,118.000000 -127.000000C118.000000 -139.000000,119.000000 -170.000000,134.000000 -231.000000M140.000000 -253.000000C179.000000 -405.000000,282.000000 -420.000000,308.000000 -420.000000C355.000000 -420.000000,382.000000 -391.000000,382.000000 -357.000000C382.000000 -253.000000,222.000000 -253.000000,181.000000 -253.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_111">
      <path style="fill-rule: evenodd;" d="M469.000000 -273.000000C469.000000 -377.000000,399.000000 -442.000000,309.000000 -442.000000C175.000000 -442.000000,41.000000 -300.000000,41.000000 -158.000000C41.000000 -59.000000,108.000000 11.000000,201.000000 11.000000C334.000000 11.000000,469.000000 -127.000000,469.000000 -273.000000M202.000000 -11.000000C159.000000 -11.000000,115.000000 -42.000000,115.000000 -120.000000C115.000000 -169.000000,141.000000 -277.000000,173.000000 -328.000000C223.000000 -405.000000,280.000000 -420.000000,308.000000 -420.000000C366.000000 -420.000000,396.000000 -372.000000,396.000000 -312.000000C396.000000 -273.000000,376.000000 -168.000000,338.000000 -103.000000C303.000000 -45.000000,248.000000 -11.000000,202.000000 -11.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_114">
      <path style="fill-rule: evenodd;" d="M88.000000 -59.000000C85.000000 -44.000000,79.000000 -21.000000,79.000000 -16.000000C79.000000 2.000000,93.000000 11.000000,108.000000 11.000000C120.000000 11.000000,138.000000 3.000000,145.000000 -17.000000C147.000000 -21.000000,181.000000 -157.000000,185.000000 -175.000000C193.000000 -208.000000,211.000000 -278.000000,217.000000 -305.000000C221.000000 -318.000000,249.000000 -365.000000,273.000000 -387.000000C281.000000 -394.000000,310.000000 -420.000000,353.000000 -420.000000C379.000000 -420.000000,394.000000 -408.000000,395.000000 -408.000000C365.000000 -403.000000,343.000000 -379.000000,343.000000 -353.000000C343.000000 -337.000000,354.000000 -318.000000,381.000000 -318.000000C408.000000 -318.000000,436.000000 -341.000000,436.000000 -377.000000C436.000000 -412.000000,404.000000 -442.000000,353.000000 -442.000000C288.000000 -442.000000,244.000000 -393.000000,225.000000 -365.000000C217.000000 -410.000000,181.000000 -442.000000,134.000000 -442.000000C88.000000 -442.000000,69.000000 -403.000000,60.000000 -385.000000C42.000000 -351.000000,29.000000 -291.000000,29.000000 -288.000000C29.000000 -278.000000,39.000000 -278.000000,41.000000 -278.000000C51.000000 -278.000000,52.000000 -279.000000,58.000000 -301.000000C75.000000 -372.000000,95.000000 -420.000000,131.000000 -420.000000C148.000000 -420.000000,162.000000 -412.000000,162.000000 -374.000000C162.000000 -353.000000,159.000000 -342.000000,146.000000 -290.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.208817 11.362564)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_83"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,10.901993 11.362564)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_99"></use>
    <use xlink:href="#GLYPHcmmi10_111" x="4.327635"></use>
    <use xlink:href="#GLYPHcmmi10_114" x="9.174935"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,33.161255 11.362564)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_101"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,45.011230 11.362564)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmsy10_21"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,61.837051 11.362564)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_48"></use>
  </g>
</svg></span>
</p>
</li>
</ul>
</li>
</ul>
<p>The output parameter <a href="#SurfaceMatchingResultID"><i><code><span data-if="hdevelop" style="display:inline">SurfaceMatchingResultID</span><span data-if="c" style="display:none">SurfaceMatchingResultID</span><span data-if="cpp" style="display:none">SurfaceMatchingResultID</span><span data-if="com" style="display:none">SurfaceMatchingResultID</span><span data-if="dotnet" style="display:none">surfaceMatchingResultID</span><span data-if="python" style="display:none">surface_matching_result_id</span></code></i></a> returns a handle
for the surface matching result. Using this handle, additional details of
the matching process can be queried with 该算子
<a href="get_surface_matching_result.html"><code><span data-if="hdevelop" style="display:inline">get_surface_matching_result</span><span data-if="c" style="display:none">get_surface_matching_result</span><span data-if="cpp" style="display:none">GetSurfaceMatchingResult</span><span data-if="com" style="display:none">GetSurfaceMatchingResult</span><span data-if="dotnet" style="display:none">GetSurfaceMatchingResult</span><span data-if="python" style="display:none">get_surface_matching_result</span></code></a>.
Note, that in order to return the handle, <a href="#ReturnResultHandle"><i><code><span data-if="hdevelop" style="display:inline">ReturnResultHandle</span><span data-if="c" style="display:none">ReturnResultHandle</span><span data-if="cpp" style="display:none">ReturnResultHandle</span><span data-if="com" style="display:none">ReturnResultHandle</span><span data-if="dotnet" style="display:none">returnResultHandle</span><span data-if="python" style="display:none">return_result_handle</span></code></i></a>
has to be set to <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>.
</p>
<h3>The Three Steps of the Matching</h3>
<p>
The matching is divided into three steps:
</p>
<dl class="generic">


<dt><b>1. Approximate matching</b></dt>
<dd>
<p>

The approximate poses of the instances of the surface model in the scene
are searched.
</p>
<p>The following generic parameters control the approximate matching
and can be set with <a href="#GenParamName"><i><code><span data-if="hdevelop" style="display:inline">GenParamName</span><span data-if="c" style="display:none">GenParamName</span><span data-if="cpp" style="display:none">GenParamName</span><span data-if="com" style="display:none">GenParamName</span><span data-if="dotnet" style="display:none">genParamName</span><span data-if="python" style="display:none">gen_param_name</span></code></i></a> and
<a href="#GenParamValue"><i><code><span data-if="hdevelop" style="display:inline">GenParamValue</span><span data-if="c" style="display:none">GenParamValue</span><span data-if="cpp" style="display:none">GenParamValue</span><span data-if="com" style="display:none">GenParamValue</span><span data-if="dotnet" style="display:none">genParamValue</span><span data-if="python" style="display:none">gen_param_value</span></code></i></a>:
</p>
<dl class="generic">

<dt><b><i><span data-if="hdevelop" style="display:inline">'num_matches'</span><span data-if="c" style="display:none">"num_matches"</span><span data-if="cpp" style="display:none">"num_matches"</span><span data-if="com" style="display:none">"num_matches"</span><span data-if="dotnet" style="display:none">"num_matches"</span><span data-if="python" style="display:none">"num_matches"</span></i>:</b></dt>
<dd>
<p>

Sets the maximum number of matches that are returned. </p>
<p>
<i>Suggested values:</i> <i>1</i>, <i>2</i>, <i>5</i> </p>
<p>
<i>Default value:</i> <i>1</i> </p>
<p>
<i>Assertion:</i> <i><span data-if="hdevelop" style="display:inline">'num_matches'</span><span data-if="c" style="display:none">"num_matches"</span><span data-if="cpp" style="display:none">"num_matches"</span><span data-if="com" style="display:none">"num_matches"</span><span data-if="dotnet" style="display:none">"num_matches"</span><span data-if="python" style="display:none">"num_matches"</span></i> &gt; 0
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'max_overlap_dist_rel'</span><span data-if="c" style="display:none">"max_overlap_dist_rel"</span><span data-if="cpp" style="display:none">"max_overlap_dist_rel"</span><span data-if="com" style="display:none">"max_overlap_dist_rel"</span><span data-if="dotnet" style="display:none">"max_overlap_dist_rel"</span><span data-if="python" style="display:none">"max_overlap_dist_rel"</span></i>:</b></dt>
<dd>
<p>

For efficiency reasons, the maximum overlap can not be defined
in 3D.  Instead, only the minimum distance between the centers
of the axis-aligned bounding boxes of two matches can be
specified with <i><span data-if="hdevelop" style="display:inline">'max_overlap_dist_rel'</span><span data-if="c" style="display:none">"max_overlap_dist_rel"</span><span data-if="cpp" style="display:none">"max_overlap_dist_rel"</span><span data-if="com" style="display:none">"max_overlap_dist_rel"</span><span data-if="dotnet" style="display:none">"max_overlap_dist_rel"</span><span data-if="python" style="display:none">"max_overlap_dist_rel"</span></i>. The value is set
relative to the diameter of the object. Once an object with a
high <a href="#Score"><i><code><span data-if="hdevelop" style="display:inline">Score</span><span data-if="c" style="display:none">Score</span><span data-if="cpp" style="display:none">Score</span><span data-if="com" style="display:none">Score</span><span data-if="dotnet" style="display:none">score</span><span data-if="python" style="display:none">score</span></code></i></a> is found, all other matches are suppressed
if the centers of their bounding boxes lie too close to the
center of the first object. If the resulting matches must
not overlap, the value for <i><span data-if="hdevelop" style="display:inline">'max_overlap_dist_rel'</span><span data-if="c" style="display:none">"max_overlap_dist_rel"</span><span data-if="cpp" style="display:none">"max_overlap_dist_rel"</span><span data-if="com" style="display:none">"max_overlap_dist_rel"</span><span data-if="dotnet" style="display:none">"max_overlap_dist_rel"</span><span data-if="python" style="display:none">"max_overlap_dist_rel"</span></i>
should be set to <i>1.0</i>.
</p>
<p>Note that only one of the parameters
<i><span data-if="hdevelop" style="display:inline">'max_overlap_dist_rel'</span><span data-if="c" style="display:none">"max_overlap_dist_rel"</span><span data-if="cpp" style="display:none">"max_overlap_dist_rel"</span><span data-if="com" style="display:none">"max_overlap_dist_rel"</span><span data-if="dotnet" style="display:none">"max_overlap_dist_rel"</span><span data-if="python" style="display:none">"max_overlap_dist_rel"</span></i> and
<i><span data-if="hdevelop" style="display:inline">'max_overlap_dist_abs'</span><span data-if="c" style="display:none">"max_overlap_dist_abs"</span><span data-if="cpp" style="display:none">"max_overlap_dist_abs"</span><span data-if="com" style="display:none">"max_overlap_dist_abs"</span><span data-if="dotnet" style="display:none">"max_overlap_dist_abs"</span><span data-if="python" style="display:none">"max_overlap_dist_abs"</span></i> should be set. If both are
set, only the value of the last modified parameter is used.</p>
<p>
<i>Suggested values:</i> <i>0.1</i>, <i>0.5</i>, <i>1</i> </p>
<p>
<i>Default value:</i> <i>0.5</i> </p>
<p>
<i>Assertion:</i> <i><span data-if="hdevelop" style="display:inline">'max_overlap_dist_rel'</span><span data-if="c" style="display:none">"max_overlap_dist_rel"</span><span data-if="cpp" style="display:none">"max_overlap_dist_rel"</span><span data-if="com" style="display:none">"max_overlap_dist_rel"</span><span data-if="dotnet" style="display:none">"max_overlap_dist_rel"</span><span data-if="python" style="display:none">"max_overlap_dist_rel"</span></i> &gt;= 0
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'max_overlap_dist_abs'</span><span data-if="c" style="display:none">"max_overlap_dist_abs"</span><span data-if="cpp" style="display:none">"max_overlap_dist_abs"</span><span data-if="com" style="display:none">"max_overlap_dist_abs"</span><span data-if="dotnet" style="display:none">"max_overlap_dist_abs"</span><span data-if="python" style="display:none">"max_overlap_dist_abs"</span></i>:</b></dt>
<dd>
<p>

This parameter has the same effect as the parameter
<i><span data-if="hdevelop" style="display:inline">'max_overlap_dist_rel'</span><span data-if="c" style="display:none">"max_overlap_dist_rel"</span><span data-if="cpp" style="display:none">"max_overlap_dist_rel"</span><span data-if="com" style="display:none">"max_overlap_dist_rel"</span><span data-if="dotnet" style="display:none">"max_overlap_dist_rel"</span><span data-if="python" style="display:none">"max_overlap_dist_rel"</span></i>. Note that in contrast to
<i><span data-if="hdevelop" style="display:inline">'max_overlap_dist_rel'</span><span data-if="c" style="display:none">"max_overlap_dist_rel"</span><span data-if="cpp" style="display:none">"max_overlap_dist_rel"</span><span data-if="com" style="display:none">"max_overlap_dist_rel"</span><span data-if="dotnet" style="display:none">"max_overlap_dist_rel"</span><span data-if="python" style="display:none">"max_overlap_dist_rel"</span></i>, the value for
<i><span data-if="hdevelop" style="display:inline">'max_overlap_dist_abs'</span><span data-if="c" style="display:none">"max_overlap_dist_abs"</span><span data-if="cpp" style="display:none">"max_overlap_dist_abs"</span><span data-if="com" style="display:none">"max_overlap_dist_abs"</span><span data-if="dotnet" style="display:none">"max_overlap_dist_abs"</span><span data-if="python" style="display:none">"max_overlap_dist_abs"</span></i> is set as an absolute value.
See <i><span data-if="hdevelop" style="display:inline">'max_overlap_dist_rel'</span><span data-if="c" style="display:none">"max_overlap_dist_rel"</span><span data-if="cpp" style="display:none">"max_overlap_dist_rel"</span><span data-if="com" style="display:none">"max_overlap_dist_rel"</span><span data-if="dotnet" style="display:none">"max_overlap_dist_rel"</span><span data-if="python" style="display:none">"max_overlap_dist_rel"</span></i> above, for a description of the
effect of this parameter.
</p>
<p>Note that only one of the parameters
<i><span data-if="hdevelop" style="display:inline">'max_overlap_dist_rel'</span><span data-if="c" style="display:none">"max_overlap_dist_rel"</span><span data-if="cpp" style="display:none">"max_overlap_dist_rel"</span><span data-if="com" style="display:none">"max_overlap_dist_rel"</span><span data-if="dotnet" style="display:none">"max_overlap_dist_rel"</span><span data-if="python" style="display:none">"max_overlap_dist_rel"</span></i> and
<i><span data-if="hdevelop" style="display:inline">'max_overlap_dist_abs'</span><span data-if="c" style="display:none">"max_overlap_dist_abs"</span><span data-if="cpp" style="display:none">"max_overlap_dist_abs"</span><span data-if="com" style="display:none">"max_overlap_dist_abs"</span><span data-if="dotnet" style="display:none">"max_overlap_dist_abs"</span><span data-if="python" style="display:none">"max_overlap_dist_abs"</span></i> should be set. If both are
set, only the value of the last modified parameter is used.</p>
<p>
<i>Suggested values:</i> <i>1</i>, <i>2</i>, <i>3</i> </p>
<p>
<i>Assertion:</i> <i><span data-if="hdevelop" style="display:inline">'max_overlap_dist_abs'</span><span data-if="c" style="display:none">"max_overlap_dist_abs"</span><span data-if="cpp" style="display:none">"max_overlap_dist_abs"</span><span data-if="com" style="display:none">"max_overlap_dist_abs"</span><span data-if="dotnet" style="display:none">"max_overlap_dist_abs"</span><span data-if="python" style="display:none">"max_overlap_dist_abs"</span></i> &gt;= 0
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'scene_normal_computation'</span><span data-if="c" style="display:none">"scene_normal_computation"</span><span data-if="cpp" style="display:none">"scene_normal_computation"</span><span data-if="com" style="display:none">"scene_normal_computation"</span><span data-if="dotnet" style="display:none">"scene_normal_computation"</span><span data-if="python" style="display:none">"scene_normal_computation"</span></i>:</b></dt>
<dd>
<p>

This parameter controls the normal computation of the sampled
scene.</p>
<p>
In the default mode <i><span data-if="hdevelop" style="display:inline">'fast'</span><span data-if="c" style="display:none">"fast"</span><span data-if="cpp" style="display:none">"fast"</span><span data-if="com" style="display:none">"fast"</span><span data-if="dotnet" style="display:none">"fast"</span><span data-if="python" style="display:none">"fast"</span></i>, in most cases normals
from the 3D scene are used (if it already contains
normals) or computed based on
a small neighborhood of points (if not).
The computed normals <span title="7" style="vertical-align:-0.0991602em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="0.723992em" height="0.573321em" viewBox="0 0 11.583878 9.173141">
<!-- Original BoundingBox: -5.791946 -4.586578 5.791931 4.586563 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_110">
      <path style="fill-rule: evenodd;" d="M88.000000 -59.000000C85.000000 -44.000000,79.000000 -21.000000,79.000000 -16.000000C79.000000 2.000000,93.000000 11.000000,108.000000 11.000000C120.000000 11.000000,138.000000 3.000000,145.000000 -17.000000C146.000000 -19.000000,158.000000 -66.000000,164.000000 -91.000000L186.000000 -181.000000C192.000000 -203.000000,198.000000 -225.000000,203.000000 -248.000000C207.000000 -265.000000,215.000000 -294.000000,216.000000 -298.000000C231.000000 -329.000000,284.000000 -420.000000,379.000000 -420.000000C424.000000 -420.000000,433.000000 -383.000000,433.000000 -350.000000C433.000000 -288.000000,384.000000 -160.000000,368.000000 -117.000000C359.000000 -94.000000,358.000000 -82.000000,358.000000 -71.000000C358.000000 -24.000000,393.000000 11.000000,440.000000 11.000000C534.000000 11.000000,571.000000 -135.000000,571.000000 -143.000000C571.000000 -153.000000,562.000000 -153.000000,559.000000 -153.000000C549.000000 -153.000000,549.000000 -150.000000,544.000000 -135.000000C524.000000 -67.000000,491.000000 -11.000000,442.000000 -11.000000C425.000000 -11.000000,418.000000 -21.000000,418.000000 -44.000000C418.000000 -69.000000,427.000000 -93.000000,436.000000 -115.000000C455.000000 -168.000000,497.000000 -278.000000,497.000000 -335.000000C497.000000 -402.000000,454.000000 -442.000000,382.000000 -442.000000C292.000000 -442.000000,243.000000 -378.000000,226.000000 -355.000000C221.000000 -411.000000,180.000000 -442.000000,134.000000 -442.000000C88.000000 -442.000000,69.000000 -403.000000,59.000000 -385.000000C43.000000 -351.000000,29.000000 -292.000000,29.000000 -288.000000C29.000000 -278.000000,39.000000 -278.000000,41.000000 -278.000000C51.000000 -278.000000,52.000000 -279.000000,58.000000 -301.000000C75.000000 -372.000000,95.000000 -420.000000,131.000000 -420.000000C151.000000 -420.000000,162.000000 -407.000000,162.000000 -374.000000C162.000000 -353.000000,159.000000 -342.000000,146.000000 -290.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.224045 7.586578)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_110"></use>
  </g>
</svg></span> are then oriented such that <span title="8" style="vertical-align:-0.232682em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="3.00952em" height="0.916483em" viewBox="0 0 48.152328 14.663727">
<!-- Original BoundingBox: -24.076172 -7.331863 24.076157 7.331863 -->
  <defs>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmmi7_122">
      <path style="fill-rule: evenodd;" d="M168.000000 -88.000000C194.000000 -114.000000,212.000000 -133.000000,297.000000 -201.000000C318.000000 -218.000000,393.000000 -278.000000,422.000000 -306.000000C483.000000 -366.000000,521.000000 -417.000000,521.000000 -429.000000C521.000000 -441.000000,508.000000 -441.000000,504.000000 -441.000000C495.000000 -441.000000,492.000000 -439.000000,487.000000 -431.000000C456.000000 -385.000000,435.000000 -370.000000,411.000000 -370.000000C399.000000 -370.000000,384.000000 -371.000000,354.000000 -400.000000C320.000000 -434.000000,298.000000 -441.000000,275.000000 -441.000000C195.000000 -441.000000,141.000000 -354.000000,141.000000 -324.000000C141.000000 -315.000000,151.000000 -312.000000,158.000000 -312.000000C170.000000 -312.000000,172.000000 -315.000000,176.000000 -326.000000C191.000000 -361.000000,247.000000 -363.000000,263.000000 -363.000000C286.000000 -363.000000,312.000000 -357.000000,326.000000 -354.000000C381.000000 -342.000000,388.000000 -342.000000,413.000000 -342.000000C387.000000 -315.000000,369.000000 -297.000000,274.000000 -221.000000C196.000000 -159.000000,169.000000 -134.000000,150.000000 -114.000000C90.000000 -55.000000,61.000000 -11.000000,61.000000 -2.000000C61.000000 10.000000,74.000000 10.000000,78.000000 10.000000C88.000000 10.000000,90.000000 8.000000,95.000000 -0.000000C122.000000 -38.000000,153.000000 -61.000000,187.000000 -61.000000C199.000000 -61.000000,214.000000 -60.000000,241.000000 -35.000000C272.000000 -5.000000,292.000000 10.000000,324.000000 10.000000C431.000000 10.000000,498.000000 -111.000000,498.000000 -145.000000C498.000000 -157.000000,487.000000 -158.000000,481.000000 -158.000000C469.000000 -158.000000,467.000000 -153.000000,463.000000 -142.000000C444.000000 -92.000000,385.000000 -68.000000,336.000000 -68.000000C313.000000 -68.000000,288.000000 -73.000000,263.000000 -79.000000C217.000000 -89.000000,209.000000 -89.000000,191.000000 -89.000000C189.000000 -89.000000,174.000000 -89.000000,168.000000 -88.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_48">
      <path style="fill-rule: evenodd;" d="M460.000000 -320.000000C460.000000 -400.000000,455.000000 -480.000000,420.000000 -554.000000C374.000000 -650.000000,292.000000 -666.000000,250.000000 -666.000000C190.000000 -666.000000,117.000000 -640.000000,76.000000 -547.000000C44.000000 -478.000000,39.000000 -400.000000,39.000000 -320.000000C39.000000 -245.000000,43.000000 -155.000000,84.000000 -79.000000C127.000000 2.000000,200.000000 22.000000,249.000000 22.000000C303.000000 22.000000,379.000000 1.000000,423.000000 -94.000000C455.000000 -163.000000,460.000000 -241.000000,460.000000 -320.000000M249.000000 -0.000000C210.000000 -0.000000,151.000000 -25.000000,133.000000 -121.000000C122.000000 -181.000000,122.000000 -273.000000,122.000000 -332.000000C122.000000 -396.000000,122.000000 -462.000000,130.000000 -516.000000C149.000000 -635.000000,224.000000 -644.000000,249.000000 -644.000000C282.000000 -644.000000,348.000000 -626.000000,367.000000 -527.000000C377.000000 -471.000000,377.000000 -395.000000,377.000000 -332.000000C377.000000 -257.000000,377.000000 -189.000000,366.000000 -125.000000C351.000000 -30.000000,294.000000 -0.000000,249.000000 -0.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmsy10_21">
      <path style="fill-rule: evenodd;" d="M674.000000 -324.000000C688.000000 -330.000000,694.000000 -337.000000,694.000000 -346.000000C694.000000 -356.000000,690.000000 -362.000000,674.000000 -369.000000L123.000000 -629.000000C109.000000 -636.000000,105.000000 -636.000000,103.000000 -636.000000C91.000000 -636.000000,83.000000 -627.000000,83.000000 -616.000000C83.000000 -604.000000,91.000000 -599.000000,102.000000 -594.000000L627.000000 -347.000000L104.000000 -100.000000C84.000000 -91.000000,83.000000 -83.000000,83.000000 -77.000000C83.000000 -66.000000,92.000000 -57.000000,103.000000 -57.000000C106.000000 -57.000000,108.000000 -57.000000,121.000000 -64.000000M659.000000 137.000000C676.000000 137.000000,694.000000 137.000000,694.000000 117.000000C694.000000 97.000000,673.000000 97.000000,658.000000 97.000000L119.000000 97.000000C104.000000 97.000000,83.000000 97.000000,83.000000 117.000000C83.000000 137.000000,101.000000 137.000000,118.000000 137.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_110">
      <path style="fill-rule: evenodd;" d="M88.000000 -59.000000C85.000000 -44.000000,79.000000 -21.000000,79.000000 -16.000000C79.000000 2.000000,93.000000 11.000000,108.000000 11.000000C120.000000 11.000000,138.000000 3.000000,145.000000 -17.000000C146.000000 -19.000000,158.000000 -66.000000,164.000000 -91.000000L186.000000 -181.000000C192.000000 -203.000000,198.000000 -225.000000,203.000000 -248.000000C207.000000 -265.000000,215.000000 -294.000000,216.000000 -298.000000C231.000000 -329.000000,284.000000 -420.000000,379.000000 -420.000000C424.000000 -420.000000,433.000000 -383.000000,433.000000 -350.000000C433.000000 -288.000000,384.000000 -160.000000,368.000000 -117.000000C359.000000 -94.000000,358.000000 -82.000000,358.000000 -71.000000C358.000000 -24.000000,393.000000 11.000000,440.000000 11.000000C534.000000 11.000000,571.000000 -135.000000,571.000000 -143.000000C571.000000 -153.000000,562.000000 -153.000000,559.000000 -153.000000C549.000000 -153.000000,549.000000 -150.000000,544.000000 -135.000000C524.000000 -67.000000,491.000000 -11.000000,442.000000 -11.000000C425.000000 -11.000000,418.000000 -21.000000,418.000000 -44.000000C418.000000 -69.000000,427.000000 -93.000000,436.000000 -115.000000C455.000000 -168.000000,497.000000 -278.000000,497.000000 -335.000000C497.000000 -402.000000,454.000000 -442.000000,382.000000 -442.000000C292.000000 -442.000000,243.000000 -378.000000,226.000000 -355.000000C221.000000 -411.000000,180.000000 -442.000000,134.000000 -442.000000C88.000000 -442.000000,69.000000 -403.000000,59.000000 -385.000000C43.000000 -351.000000,29.000000 -292.000000,29.000000 -288.000000C29.000000 -278.000000,39.000000 -278.000000,41.000000 -278.000000C51.000000 -278.000000,52.000000 -279.000000,58.000000 -301.000000C75.000000 -372.000000,95.000000 -420.000000,131.000000 -420.000000C151.000000 -420.000000,162.000000 -407.000000,162.000000 -374.000000C162.000000 -353.000000,159.000000 -342.000000,146.000000 -290.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.939819 10.940811)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_110"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,10.507706 13.331863)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi7_122"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,22.280228 10.940811)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmsy10_21"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,39.106049 10.940811)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_48"></use>
  </g>
</svg></span> in case no original
normals exist.
This orientation of <span title="9" style="vertical-align:-0.232682em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="3.00952em" height="0.916483em" viewBox="0 0 48.152328 14.663727">
<!-- Original BoundingBox: -24.076172 -7.331863 24.076157 7.331863 -->
  <defs>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmmi7_122">
      <path style="fill-rule: evenodd;" d="M168.000000 -88.000000C194.000000 -114.000000,212.000000 -133.000000,297.000000 -201.000000C318.000000 -218.000000,393.000000 -278.000000,422.000000 -306.000000C483.000000 -366.000000,521.000000 -417.000000,521.000000 -429.000000C521.000000 -441.000000,508.000000 -441.000000,504.000000 -441.000000C495.000000 -441.000000,492.000000 -439.000000,487.000000 -431.000000C456.000000 -385.000000,435.000000 -370.000000,411.000000 -370.000000C399.000000 -370.000000,384.000000 -371.000000,354.000000 -400.000000C320.000000 -434.000000,298.000000 -441.000000,275.000000 -441.000000C195.000000 -441.000000,141.000000 -354.000000,141.000000 -324.000000C141.000000 -315.000000,151.000000 -312.000000,158.000000 -312.000000C170.000000 -312.000000,172.000000 -315.000000,176.000000 -326.000000C191.000000 -361.000000,247.000000 -363.000000,263.000000 -363.000000C286.000000 -363.000000,312.000000 -357.000000,326.000000 -354.000000C381.000000 -342.000000,388.000000 -342.000000,413.000000 -342.000000C387.000000 -315.000000,369.000000 -297.000000,274.000000 -221.000000C196.000000 -159.000000,169.000000 -134.000000,150.000000 -114.000000C90.000000 -55.000000,61.000000 -11.000000,61.000000 -2.000000C61.000000 10.000000,74.000000 10.000000,78.000000 10.000000C88.000000 10.000000,90.000000 8.000000,95.000000 -0.000000C122.000000 -38.000000,153.000000 -61.000000,187.000000 -61.000000C199.000000 -61.000000,214.000000 -60.000000,241.000000 -35.000000C272.000000 -5.000000,292.000000 10.000000,324.000000 10.000000C431.000000 10.000000,498.000000 -111.000000,498.000000 -145.000000C498.000000 -157.000000,487.000000 -158.000000,481.000000 -158.000000C469.000000 -158.000000,467.000000 -153.000000,463.000000 -142.000000C444.000000 -92.000000,385.000000 -68.000000,336.000000 -68.000000C313.000000 -68.000000,288.000000 -73.000000,263.000000 -79.000000C217.000000 -89.000000,209.000000 -89.000000,191.000000 -89.000000C189.000000 -89.000000,174.000000 -89.000000,168.000000 -88.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_48">
      <path style="fill-rule: evenodd;" d="M460.000000 -320.000000C460.000000 -400.000000,455.000000 -480.000000,420.000000 -554.000000C374.000000 -650.000000,292.000000 -666.000000,250.000000 -666.000000C190.000000 -666.000000,117.000000 -640.000000,76.000000 -547.000000C44.000000 -478.000000,39.000000 -400.000000,39.000000 -320.000000C39.000000 -245.000000,43.000000 -155.000000,84.000000 -79.000000C127.000000 2.000000,200.000000 22.000000,249.000000 22.000000C303.000000 22.000000,379.000000 1.000000,423.000000 -94.000000C455.000000 -163.000000,460.000000 -241.000000,460.000000 -320.000000M249.000000 -0.000000C210.000000 -0.000000,151.000000 -25.000000,133.000000 -121.000000C122.000000 -181.000000,122.000000 -273.000000,122.000000 -332.000000C122.000000 -396.000000,122.000000 -462.000000,130.000000 -516.000000C149.000000 -635.000000,224.000000 -644.000000,249.000000 -644.000000C282.000000 -644.000000,348.000000 -626.000000,367.000000 -527.000000C377.000000 -471.000000,377.000000 -395.000000,377.000000 -332.000000C377.000000 -257.000000,377.000000 -189.000000,366.000000 -125.000000C351.000000 -30.000000,294.000000 -0.000000,249.000000 -0.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmsy10_21">
      <path style="fill-rule: evenodd;" d="M674.000000 -324.000000C688.000000 -330.000000,694.000000 -337.000000,694.000000 -346.000000C694.000000 -356.000000,690.000000 -362.000000,674.000000 -369.000000L123.000000 -629.000000C109.000000 -636.000000,105.000000 -636.000000,103.000000 -636.000000C91.000000 -636.000000,83.000000 -627.000000,83.000000 -616.000000C83.000000 -604.000000,91.000000 -599.000000,102.000000 -594.000000L627.000000 -347.000000L104.000000 -100.000000C84.000000 -91.000000,83.000000 -83.000000,83.000000 -77.000000C83.000000 -66.000000,92.000000 -57.000000,103.000000 -57.000000C106.000000 -57.000000,108.000000 -57.000000,121.000000 -64.000000M659.000000 137.000000C676.000000 137.000000,694.000000 137.000000,694.000000 117.000000C694.000000 97.000000,673.000000 97.000000,658.000000 97.000000L119.000000 97.000000C104.000000 97.000000,83.000000 97.000000,83.000000 117.000000C83.000000 137.000000,101.000000 137.000000,118.000000 137.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_110">
      <path style="fill-rule: evenodd;" d="M88.000000 -59.000000C85.000000 -44.000000,79.000000 -21.000000,79.000000 -16.000000C79.000000 2.000000,93.000000 11.000000,108.000000 11.000000C120.000000 11.000000,138.000000 3.000000,145.000000 -17.000000C146.000000 -19.000000,158.000000 -66.000000,164.000000 -91.000000L186.000000 -181.000000C192.000000 -203.000000,198.000000 -225.000000,203.000000 -248.000000C207.000000 -265.000000,215.000000 -294.000000,216.000000 -298.000000C231.000000 -329.000000,284.000000 -420.000000,379.000000 -420.000000C424.000000 -420.000000,433.000000 -383.000000,433.000000 -350.000000C433.000000 -288.000000,384.000000 -160.000000,368.000000 -117.000000C359.000000 -94.000000,358.000000 -82.000000,358.000000 -71.000000C358.000000 -24.000000,393.000000 11.000000,440.000000 11.000000C534.000000 11.000000,571.000000 -135.000000,571.000000 -143.000000C571.000000 -153.000000,562.000000 -153.000000,559.000000 -153.000000C549.000000 -153.000000,549.000000 -150.000000,544.000000 -135.000000C524.000000 -67.000000,491.000000 -11.000000,442.000000 -11.000000C425.000000 -11.000000,418.000000 -21.000000,418.000000 -44.000000C418.000000 -69.000000,427.000000 -93.000000,436.000000 -115.000000C455.000000 -168.000000,497.000000 -278.000000,497.000000 -335.000000C497.000000 -402.000000,454.000000 -442.000000,382.000000 -442.000000C292.000000 -442.000000,243.000000 -378.000000,226.000000 -355.000000C221.000000 -411.000000,180.000000 -442.000000,134.000000 -442.000000C88.000000 -442.000000,69.000000 -403.000000,59.000000 -385.000000C43.000000 -351.000000,29.000000 -292.000000,29.000000 -288.000000C29.000000 -278.000000,39.000000 -278.000000,41.000000 -278.000000C51.000000 -278.000000,52.000000 -279.000000,58.000000 -301.000000C75.000000 -372.000000,95.000000 -420.000000,131.000000 -420.000000C151.000000 -420.000000,162.000000 -407.000000,162.000000 -374.000000C162.000000 -353.000000,159.000000 -342.000000,146.000000 -290.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.939819 10.940811)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_110"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,10.507706 13.331863)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi7_122"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,22.280228 10.940811)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmsy10_21"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,39.106049 10.940811)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_48"></use>
  </g>
</svg></span> implies the assumption
that the scene was observed from a camera looking along the
z-axis. </p>
<p>
In the default mode <i><span data-if="hdevelop" style="display:inline">'fast'</span><span data-if="c" style="display:none">"fast"</span><span data-if="cpp" style="display:none">"fast"</span><span data-if="com" style="display:none">"fast"</span><span data-if="dotnet" style="display:none">"fast"</span><span data-if="python" style="display:none">"fast"</span></i>, in case the model was trained
for edge-supported surface-based matching and the scene contains a
mapping, input normals are not used and normals are always computed
from the mapping contained in the 3D scene. Further, the computed
normals are oriented inwards consistently with respect to the mapping. </p>
<p>
In the mode <i><span data-if="hdevelop" style="display:inline">'mls'</span><span data-if="c" style="display:none">"mls"</span><span data-if="cpp" style="display:none">"mls"</span><span data-if="com" style="display:none">"mls"</span><span data-if="dotnet" style="display:none">"mls"</span><span data-if="python" style="display:none">"mls"</span></i>, normals are recomputed based on a larger
neighborhood and using the more complex but often more accurate
<i><span data-if="hdevelop" style="display:inline">'mls'</span><span data-if="c" style="display:none">"mls"</span><span data-if="cpp" style="display:none">"mls"</span><span data-if="com" style="display:none">"mls"</span><span data-if="dotnet" style="display:none">"mls"</span><span data-if="python" style="display:none">"mls"</span></i> method.
A more detailed description of the <i><span data-if="hdevelop" style="display:inline">'mls'</span><span data-if="c" style="display:none">"mls"</span><span data-if="cpp" style="display:none">"mls"</span><span data-if="com" style="display:none">"mls"</span><span data-if="dotnet" style="display:none">"mls"</span><span data-if="python" style="display:none">"mls"</span></i> method can be
found in the description of 该算子
<a href="surface_normals_object_model_3d.html"><code><span data-if="hdevelop" style="display:inline">surface_normals_object_model_3d</span><span data-if="c" style="display:none">surface_normals_object_model_3d</span><span data-if="cpp" style="display:none">SurfaceNormalsObjectModel3d</span><span data-if="com" style="display:none">SurfaceNormalsObjectModel3d</span><span data-if="dotnet" style="display:none">SurfaceNormalsObjectModel3d</span><span data-if="python" style="display:none">surface_normals_object_model_3d</span></code></a>.
The <i><span data-if="hdevelop" style="display:inline">'mls'</span><span data-if="c" style="display:none">"mls"</span><span data-if="cpp" style="display:none">"mls"</span><span data-if="com" style="display:none">"mls"</span><span data-if="dotnet" style="display:none">"mls"</span><span data-if="python" style="display:none">"mls"</span></i> mode is intended for noisy data, such as images
from time-of-flight cameras.
The recomputed normals are oriented as the normals in mode <i><span data-if="hdevelop" style="display:inline">'fast'</span><span data-if="c" style="display:none">"fast"</span><span data-if="cpp" style="display:none">"fast"</span><span data-if="com" style="display:none">"fast"</span><span data-if="dotnet" style="display:none">"fast"</span><span data-if="python" style="display:none">"fast"</span></i>.
</p>
<p>
<i>List of values:</i> <i><span data-if="hdevelop" style="display:inline">'fast'</span><span data-if="c" style="display:none">"fast"</span><span data-if="cpp" style="display:none">"fast"</span><span data-if="com" style="display:none">"fast"</span><span data-if="dotnet" style="display:none">"fast"</span><span data-if="python" style="display:none">"fast"</span></i>, <i><span data-if="hdevelop" style="display:inline">'mls'</span><span data-if="c" style="display:none">"mls"</span><span data-if="cpp" style="display:none">"mls"</span><span data-if="com" style="display:none">"mls"</span><span data-if="dotnet" style="display:none">"mls"</span><span data-if="python" style="display:none">"mls"</span></i> </p>
<p>
<i>Default value:</i> <i><span data-if="hdevelop" style="display:inline">'fast'</span><span data-if="c" style="display:none">"fast"</span><span data-if="cpp" style="display:none">"fast"</span><span data-if="com" style="display:none">"fast"</span><span data-if="dotnet" style="display:none">"fast"</span><span data-if="python" style="display:none">"fast"</span></i>
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'scene_invert_normals'</span><span data-if="c" style="display:none">"scene_invert_normals"</span><span data-if="cpp" style="display:none">"scene_invert_normals"</span><span data-if="com" style="display:none">"scene_invert_normals"</span><span data-if="dotnet" style="display:none">"scene_invert_normals"</span><span data-if="python" style="display:none">"scene_invert_normals"</span></i>:</b></dt>
<dd>
<p>

Invert the orientation of the surface normals of the scene.
The orientation of surface normals of the scene have to match with the
orientation of the model.
If both the model and the scene are acquired with the same setup,
the normals will already point in the same direction.
If you experience the effect that the
model is found on the 'outside' of the scene surface, try to set this
parameter to <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>.
Also, make sure that the normals in the scene all point either
outward or inward, i.e., are oriented consistently.
For edge-supported surface-based matching, the normal vectors have to
point inwards, but typically are automatically generated flipped inwards
consistently with respect to the mapping.
The orientation of the normals can be inspected using the procedure
<code>debug_find_surface_model</code>.
</p>
<p>
<i>Possible values:</i> <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>, <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i> </p>
<p>
<i>Default value:</i> <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'3d_edges'</span><span data-if="c" style="display:none">"3d_edges"</span><span data-if="cpp" style="display:none">"3d_edges"</span><span data-if="com" style="display:none">"3d_edges"</span><span data-if="dotnet" style="display:none">"3d_edges"</span><span data-if="python" style="display:none">"3d_edges"</span></i>:</b></dt>
<dd>
<p>

Allows to manually set the 3D scene edges for edge-supported
surface-based matching, i.e. if the surface model was created with
<i><span data-if="hdevelop" style="display:inline">'train_3d_edges'</span><span data-if="c" style="display:none">"train_3d_edges"</span><span data-if="cpp" style="display:none">"train_3d_edges"</span><span data-if="com" style="display:none">"train_3d_edges"</span><span data-if="dotnet" style="display:none">"train_3d_edges"</span><span data-if="python" style="display:none">"train_3d_edges"</span></i> enabled. The parameter must be a 3D object
model handle.
The edges are usually a result of 该算子
<a href="edges_object_model_3d.html"><code><span data-if="hdevelop" style="display:inline">edges_object_model_3d</span><span data-if="c" style="display:none">edges_object_model_3d</span><span data-if="cpp" style="display:none">EdgesObjectModel3d</span><span data-if="com" style="display:none">EdgesObjectModel3d</span><span data-if="dotnet" style="display:none">EdgesObjectModel3d</span><span data-if="python" style="display:none">edges_object_model_3d</span></code></a> but can further be filtered in order
to remove outliers.
If this parameter is not given, <code><span data-if="hdevelop" style="display:inline">find_surface_model</span><span data-if="c" style="display:none">find_surface_model</span><span data-if="cpp" style="display:none">FindSurfaceModel</span><span data-if="com" style="display:none">FindSurfaceModel</span><span data-if="dotnet" style="display:none">FindSurfaceModel</span><span data-if="python" style="display:none">find_surface_model</span></code> will
internally extract the edges similar to 该算子
<a href="edges_object_model_3d.html"><code><span data-if="hdevelop" style="display:inline">edges_object_model_3d</span><span data-if="c" style="display:none">edges_object_model_3d</span><span data-if="cpp" style="display:none">EdgesObjectModel3d</span><span data-if="com" style="display:none">EdgesObjectModel3d</span><span data-if="dotnet" style="display:none">EdgesObjectModel3d</span><span data-if="python" style="display:none">edges_object_model_3d</span></code></a>.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'3d_edge_min_amplitude_rel'</span><span data-if="c" style="display:none">"3d_edge_min_amplitude_rel"</span><span data-if="cpp" style="display:none">"3d_edge_min_amplitude_rel"</span><span data-if="com" style="display:none">"3d_edge_min_amplitude_rel"</span><span data-if="dotnet" style="display:none">"3d_edge_min_amplitude_rel"</span><span data-if="python" style="display:none">"3d_edge_min_amplitude_rel"</span></i>:</b></dt>
<dd>
<p>

Sets the threshold when extracting 3D edges for edge-supported
surface-based matching, i.e. if the surface model was created with
<i><span data-if="hdevelop" style="display:inline">'train_3d_edges'</span><span data-if="c" style="display:none">"train_3d_edges"</span><span data-if="cpp" style="display:none">"train_3d_edges"</span><span data-if="com" style="display:none">"train_3d_edges"</span><span data-if="dotnet" style="display:none">"train_3d_edges"</span><span data-if="python" style="display:none">"train_3d_edges"</span></i> enabled.
The threshold is set relative to the diameter of the object.
Note that if edges were passed manually with the generic parameter
<i><span data-if="hdevelop" style="display:inline">'3d_edges'</span><span data-if="c" style="display:none">"3d_edges"</span><span data-if="cpp" style="display:none">"3d_edges"</span><span data-if="com" style="display:none">"3d_edges"</span><span data-if="dotnet" style="display:none">"3d_edges"</span><span data-if="python" style="display:none">"3d_edges"</span></i>, this parameter is ignored.
Otherwise, it behaves identically to the parameter
<code><span data-if="hdevelop" style="display:inline">MinAmplitude</span><span data-if="c" style="display:none">MinAmplitude</span><span data-if="cpp" style="display:none">MinAmplitude</span><span data-if="com" style="display:none">MinAmplitude</span><span data-if="dotnet" style="display:none">minAmplitude</span><span data-if="python" style="display:none">min_amplitude</span></code> of operator <a href="edges_object_model_3d.html"><code><span data-if="hdevelop" style="display:inline">edges_object_model_3d</span><span data-if="c" style="display:none">edges_object_model_3d</span><span data-if="cpp" style="display:none">EdgesObjectModel3d</span><span data-if="com" style="display:none">EdgesObjectModel3d</span><span data-if="dotnet" style="display:none">EdgesObjectModel3d</span><span data-if="python" style="display:none">edges_object_model_3d</span></code></a>.</p>
<p>
<i>Suggested values:</i> <i>0.05</i>, <i>0.1</i>,
<i>0.5</i></p>
<p>
<i>Default value:</i> <i>0.05</i> </p>
<p>
<i>Assertion:</i> <i><span data-if="hdevelop" style="display:inline">'3d_edge_min_amplitude_rel'</span><span data-if="c" style="display:none">"3d_edge_min_amplitude_rel"</span><span data-if="cpp" style="display:none">"3d_edge_min_amplitude_rel"</span><span data-if="com" style="display:none">"3d_edge_min_amplitude_rel"</span><span data-if="dotnet" style="display:none">"3d_edge_min_amplitude_rel"</span><span data-if="python" style="display:none">"3d_edge_min_amplitude_rel"</span></i> &gt;= 0
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'3d_edge_min_amplitude_abs'</span><span data-if="c" style="display:none">"3d_edge_min_amplitude_abs"</span><span data-if="cpp" style="display:none">"3d_edge_min_amplitude_abs"</span><span data-if="com" style="display:none">"3d_edge_min_amplitude_abs"</span><span data-if="dotnet" style="display:none">"3d_edge_min_amplitude_abs"</span><span data-if="python" style="display:none">"3d_edge_min_amplitude_abs"</span></i>:</b></dt>
<dd>
<p>

Similar to <i><span data-if="hdevelop" style="display:inline">'3d_edge_min_amplitude_rel'</span><span data-if="c" style="display:none">"3d_edge_min_amplitude_rel"</span><span data-if="cpp" style="display:none">"3d_edge_min_amplitude_rel"</span><span data-if="com" style="display:none">"3d_edge_min_amplitude_rel"</span><span data-if="dotnet" style="display:none">"3d_edge_min_amplitude_rel"</span><span data-if="python" style="display:none">"3d_edge_min_amplitude_rel"</span></i>, however, the value
is given as absolute distance and not relative to the object
diameter.
</p>
<p>
<i>Assertion:</i> <i><span data-if="hdevelop" style="display:inline">'3d_edge_min_amplitude_abs'</span><span data-if="c" style="display:none">"3d_edge_min_amplitude_abs"</span><span data-if="cpp" style="display:none">"3d_edge_min_amplitude_abs"</span><span data-if="com" style="display:none">"3d_edge_min_amplitude_abs"</span><span data-if="dotnet" style="display:none">"3d_edge_min_amplitude_abs"</span><span data-if="python" style="display:none">"3d_edge_min_amplitude_abs"</span></i> &gt;= 0
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'viewpoint'</span><span data-if="c" style="display:none">"viewpoint"</span><span data-if="cpp" style="display:none">"viewpoint"</span><span data-if="com" style="display:none">"viewpoint"</span><span data-if="dotnet" style="display:none">"viewpoint"</span><span data-if="python" style="display:none">"viewpoint"</span></i>:</b></dt>
<dd>
<p>

This parameter specifies the viewpoint from which the 3D data is
seen.
It is used for surface models
that are prepared for view-based score computation
(i.e. with <i><span data-if="hdevelop" style="display:inline">'train_view_based'</span><span data-if="c" style="display:none">"train_view_based"</span><span data-if="cpp" style="display:none">"train_view_based"</span><span data-if="com" style="display:none">"train_view_based"</span><span data-if="dotnet" style="display:none">"train_view_based"</span><span data-if="python" style="display:none">"train_view_based"</span></i> enabled) to get the maximum number
of potentially visible points of the model based on the current
viewpoint.
For this, <a href="#GenParamValue"><i><code><span data-if="hdevelop" style="display:inline">GenParamValue</span><span data-if="c" style="display:none">GenParamValue</span><span data-if="cpp" style="display:none">GenParamValue</span><span data-if="com" style="display:none">GenParamValue</span><span data-if="dotnet" style="display:none">genParamValue</span><span data-if="python" style="display:none">gen_param_value</span></code></i></a> must contain a string consisting of
the three coordinates (x, y, and z) of the viewpoint, separated by
spaces. The viewpoint is defined in the same coordinate frame as
<a href="#ObjectModel3D"><i><code><span data-if="hdevelop" style="display:inline">ObjectModel3D</span><span data-if="c" style="display:none">ObjectModel3D</span><span data-if="cpp" style="display:none">ObjectModel3D</span><span data-if="com" style="display:none">ObjectModel3D</span><span data-if="dotnet" style="display:none">objectModel3D</span><span data-if="python" style="display:none">object_model_3d</span></code></i></a> and should roughly correspond to the position the
scene was acquired from.
A visualization of the viewpoint can be created using the procedure
<code>debug_find_surface_model</code> in order to inspect its position.</p>
<p>
<i>Default value:</i> <i><span data-if="hdevelop" style="display:inline">'0 0 0'</span><span data-if="c" style="display:none">"0 0 0"</span><span data-if="cpp" style="display:none">"0 0 0"</span><span data-if="com" style="display:none">"0 0 0"</span><span data-if="dotnet" style="display:none">"0 0 0"</span><span data-if="python" style="display:none">"0 0 0"</span></i>
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'max_gap'</span><span data-if="c" style="display:none">"max_gap"</span><span data-if="cpp" style="display:none">"max_gap"</span><span data-if="com" style="display:none">"max_gap"</span><span data-if="dotnet" style="display:none">"max_gap"</span><span data-if="python" style="display:none">"max_gap"</span></i>:</b></dt>
<dd>
<p>

Gaps in the 3D data are closed, as far as they do not exceed the
maximum gap size <i><span data-if="hdevelop" style="display:inline">'max_gap'</span><span data-if="c" style="display:none">"max_gap"</span><span data-if="cpp" style="display:none">"max_gap"</span><span data-if="com" style="display:none">"max_gap"</span><span data-if="dotnet" style="display:none">"max_gap"</span><span data-if="python" style="display:none">"max_gap"</span></i> [pixels] and the surface model
was created with <i><span data-if="hdevelop" style="display:inline">'train_3d_edges'</span><span data-if="c" style="display:none">"train_3d_edges"</span><span data-if="cpp" style="display:none">"train_3d_edges"</span><span data-if="com" style="display:none">"train_3d_edges"</span><span data-if="dotnet" style="display:none">"train_3d_edges"</span><span data-if="python" style="display:none">"train_3d_edges"</span></i> enabled.
Larger gaps will contain edges at their boundary, while gaps smaller
than this value will not.
This suppresses edges around smaller patches that were not
reconstructed by the sensor as well as edges at the more
distant part of a discontinuity.
For sensors with very large resolutions, the value should be
increased to avoid spurious edges.
Note that if edges were passed manually with the generic parameter
<i><span data-if="hdevelop" style="display:inline">'3d_edges'</span><span data-if="c" style="display:none">"3d_edges"</span><span data-if="cpp" style="display:none">"3d_edges"</span><span data-if="com" style="display:none">"3d_edges"</span><span data-if="dotnet" style="display:none">"3d_edges"</span><span data-if="python" style="display:none">"3d_edges"</span></i>, this parameter is ignored.
Otherwise, it behaves identically to the parameter
<code><span data-if="hdevelop" style="display:inline">GenParamName</span><span data-if="c" style="display:none">GenParamName</span><span data-if="cpp" style="display:none">GenParamName</span><span data-if="com" style="display:none">GenParamName</span><span data-if="dotnet" style="display:none">genParamName</span><span data-if="python" style="display:none">gen_param_name</span></code> of 该算子 <a href="edges_object_model_3d.html"><code><span data-if="hdevelop" style="display:inline">edges_object_model_3d</span><span data-if="c" style="display:none">edges_object_model_3d</span><span data-if="cpp" style="display:none">EdgesObjectModel3d</span><span data-if="com" style="display:none">EdgesObjectModel3d</span><span data-if="dotnet" style="display:none">EdgesObjectModel3d</span><span data-if="python" style="display:none">edges_object_model_3d</span></code></a>
when <i><span data-if="hdevelop" style="display:inline">'max_gap'</span><span data-if="c" style="display:none">"max_gap"</span><span data-if="cpp" style="display:none">"max_gap"</span><span data-if="com" style="display:none">"max_gap"</span><span data-if="dotnet" style="display:none">"max_gap"</span><span data-if="python" style="display:none">"max_gap"</span></i> is set.
</p>
<p>The influence of <i><span data-if="hdevelop" style="display:inline">'max_gap'</span><span data-if="c" style="display:none">"max_gap"</span><span data-if="cpp" style="display:none">"max_gap"</span><span data-if="com" style="display:none">"max_gap"</span><span data-if="dotnet" style="display:none">"max_gap"</span><span data-if="python" style="display:none">"max_gap"</span></i> can be inspected using the
procedure <code>debug_find_surface_model</code>.</p>
<p>
<i>Default value:</i> <i>30</i>
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'use_3d_edges'</span><span data-if="c" style="display:none">"use_3d_edges"</span><span data-if="cpp" style="display:none">"use_3d_edges"</span><span data-if="com" style="display:none">"use_3d_edges"</span><span data-if="dotnet" style="display:none">"use_3d_edges"</span><span data-if="python" style="display:none">"use_3d_edges"</span></i>:</b></dt>
<dd>
<p>

Turns the edge-supported matching on or off.
This can be used to perform matching without 3D edges, even though
the model was created for edge-supported matching.
If the model was not created for edge-supported surface-based
matching, an error is returned.</p>
<p>
<i>List of values:</i> <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>, <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i> </p>
<p>
<i>Default value:</i> <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>
</p>
</dd>
</dl>

</dd>

<dt><b>2. Sparse pose refinement</b></dt>
<dd>
<p>

In this second step, the approximate poses found in the previous step are
further refined. This increases the accuracy of the poses and the
significance of the score value.
</p>
<p>The following generic parameters control the sparse pose refinement
and can be set with <a href="#GenParamName"><i><code><span data-if="hdevelop" style="display:inline">GenParamName</span><span data-if="c" style="display:none">GenParamName</span><span data-if="cpp" style="display:none">GenParamName</span><span data-if="com" style="display:none">GenParamName</span><span data-if="dotnet" style="display:none">genParamName</span><span data-if="python" style="display:none">gen_param_name</span></code></i></a> and
<a href="#GenParamValue"><i><code><span data-if="hdevelop" style="display:inline">GenParamValue</span><span data-if="c" style="display:none">GenParamValue</span><span data-if="cpp" style="display:none">GenParamValue</span><span data-if="com" style="display:none">GenParamValue</span><span data-if="dotnet" style="display:none">genParamValue</span><span data-if="python" style="display:none">gen_param_value</span></code></i></a>:
</p>
<dl class="generic">


<dt><b><i><span data-if="hdevelop" style="display:inline">'sparse_pose_refinement'</span><span data-if="c" style="display:none">"sparse_pose_refinement"</span><span data-if="cpp" style="display:none">"sparse_pose_refinement"</span><span data-if="com" style="display:none">"sparse_pose_refinement"</span><span data-if="dotnet" style="display:none">"sparse_pose_refinement"</span><span data-if="python" style="display:none">"sparse_pose_refinement"</span></i>:</b></dt>
<dd>
<p>

Enables or disables the sparse pose refinement. </p>
<p>
<i>List of values:</i> <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>, <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i> </p>
<p>
<i>Default value:</i> <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'pose_ref_use_scene_normals'</span><span data-if="c" style="display:none">"pose_ref_use_scene_normals"</span><span data-if="cpp" style="display:none">"pose_ref_use_scene_normals"</span><span data-if="com" style="display:none">"pose_ref_use_scene_normals"</span><span data-if="dotnet" style="display:none">"pose_ref_use_scene_normals"</span><span data-if="python" style="display:none">"pose_ref_use_scene_normals"</span></i>:</b></dt>
<dd>
<p>

Enables or disables the usage of scene normals for the pose
refinement. If this parameter is enabled, and if the scene contains
point normals, then those normals are used to increase the
accuracy of the pose refinement.
For this, the influence of scene points whose normal points in a
different direction than the model normal is decreased.
Note that the scene must contain point normals. Otherwise, this
parameter is ignored. </p>
<p>
<i>List of values:</i> <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>, <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i> </p>
<p>
<i>Default value:</i> <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'use_view_based'</span><span data-if="c" style="display:none">"use_view_based"</span><span data-if="cpp" style="display:none">"use_view_based"</span><span data-if="com" style="display:none">"use_view_based"</span><span data-if="dotnet" style="display:none">"use_view_based"</span><span data-if="python" style="display:none">"use_view_based"</span></i>:</b></dt>
<dd>
<p>

Turns the view-based score computation for surface-based matching on or
off. This can be used to perform matching without using the view-based
score, even though the model was prepared for view-based score
computation. The influence of <i><span data-if="hdevelop" style="display:inline">'use_view_based'</span><span data-if="c" style="display:none">"use_view_based"</span><span data-if="cpp" style="display:none">"use_view_based"</span><span data-if="com" style="display:none">"use_view_based"</span><span data-if="dotnet" style="display:none">"use_view_based"</span><span data-if="python" style="display:none">"use_view_based"</span></i> on the score is
explained in the documentation of <a href="#Score"><i><code><span data-if="hdevelop" style="display:inline">Score</span><span data-if="c" style="display:none">Score</span><span data-if="cpp" style="display:none">Score</span><span data-if="com" style="display:none">Score</span><span data-if="dotnet" style="display:none">score</span><span data-if="python" style="display:none">score</span></code></i></a> above.
</p>
<p>If the model was not prepared for view-based score computation,
an error is returned.</p>
<p>
<i>List of values:</i> <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>, <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i> </p>


<p><i>Default value:</i> <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>, if <i><span data-if="hdevelop" style="display:inline">'train_view_based'</span><span data-if="c" style="display:none">"train_view_based"</span><span data-if="cpp" style="display:none">"train_view_based"</span><span data-if="com" style="display:none">"train_view_based"</span><span data-if="dotnet" style="display:none">"train_view_based"</span><span data-if="python" style="display:none">"train_view_based"</span></i>
was disabled when creating the model, otherwise <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>.
</p>
</dd>
</dl>

</dd>

<dt><b>3. Dense pose refinement</b></dt>
<dd>
<p>

Accurately refines the poses found in the previous steps.
</p>
<p>The following generic parameters influence the accuracy and speed of
the dense pose refinement and can be set with <a href="#GenParamName"><i><code><span data-if="hdevelop" style="display:inline">GenParamName</span><span data-if="c" style="display:none">GenParamName</span><span data-if="cpp" style="display:none">GenParamName</span><span data-if="com" style="display:none">GenParamName</span><span data-if="dotnet" style="display:none">genParamName</span><span data-if="python" style="display:none">gen_param_name</span></code></i></a>
and <a href="#GenParamValue"><i><code><span data-if="hdevelop" style="display:inline">GenParamValue</span><span data-if="c" style="display:none">GenParamValue</span><span data-if="cpp" style="display:none">GenParamValue</span><span data-if="com" style="display:none">GenParamValue</span><span data-if="dotnet" style="display:none">genParamValue</span><span data-if="python" style="display:none">gen_param_value</span></code></i></a>:
</p>
<dl class="generic">

<dt><b><i><span data-if="hdevelop" style="display:inline">'dense_pose_refinement'</span><span data-if="c" style="display:none">"dense_pose_refinement"</span><span data-if="cpp" style="display:none">"dense_pose_refinement"</span><span data-if="com" style="display:none">"dense_pose_refinement"</span><span data-if="dotnet" style="display:none">"dense_pose_refinement"</span><span data-if="python" style="display:none">"dense_pose_refinement"</span></i>:</b></dt>
<dd>
<p>

Enables or disables the dense pose refinement.</p>
<p>
<i>List of values:</i> <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>, <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i> </p>
<p>
<i>Default value:</i> <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'pose_ref_num_steps'</span><span data-if="c" style="display:none">"pose_ref_num_steps"</span><span data-if="cpp" style="display:none">"pose_ref_num_steps"</span><span data-if="com" style="display:none">"pose_ref_num_steps"</span><span data-if="dotnet" style="display:none">"pose_ref_num_steps"</span><span data-if="python" style="display:none">"pose_ref_num_steps"</span></i>:</b></dt>
<dd>
<p>

Number of iterations for the dense pose refinement. Increasing the
number of iteration leads to a more accurate pose at the expense of
runtime.
However, once convergence is reached, the accuracy can no longer be
increased, even if the number of steps is increased.
Note that this parameter is ignored if the dense pose refinement is
disabled.</p>
<p>
<i>Suggested values:</i> <i>1</i>, <i>3</i>, <i>5</i>,
<i>20</i> </p>
<p>
<i>Default value:</i> <i>5</i> </p>
<p>
<i>Assertion:</i> <i><span data-if="hdevelop" style="display:inline">'pose_ref_num_steps'</span><span data-if="c" style="display:none">"pose_ref_num_steps"</span><span data-if="cpp" style="display:none">"pose_ref_num_steps"</span><span data-if="com" style="display:none">"pose_ref_num_steps"</span><span data-if="dotnet" style="display:none">"pose_ref_num_steps"</span><span data-if="python" style="display:none">"pose_ref_num_steps"</span></i> &gt; 0
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'pose_ref_sub_sampling'</span><span data-if="c" style="display:none">"pose_ref_sub_sampling"</span><span data-if="cpp" style="display:none">"pose_ref_sub_sampling"</span><span data-if="com" style="display:none">"pose_ref_sub_sampling"</span><span data-if="dotnet" style="display:none">"pose_ref_sub_sampling"</span><span data-if="python" style="display:none">"pose_ref_sub_sampling"</span></i>:</b></dt>
<dd>
<p>

Set the rate of scene points to be used for the dense pose
refinement.
For example, if this value is set to <i>5</i>, every 5th point
from the scene is used for pose refinement. This parameter allows an
easy trade-off between speed and accuracy of the pose refinement:
Increasing the value leads to less points being used and in turn
to a faster but less accurate pose refinement. Decreasing the value
has the inverse effect.
Note that this parameter is ignored if the dense pose refinement is
disabled.</p>
<p>
<i>Suggested values:</i> <i>1</i>, <i>2</i>, <i>5</i>,
<i>10</i> </p>
<p>
<i>Default value:</i> <i>2</i> </p>
<p>
<i>Assertion:</i> <i><span data-if="hdevelop" style="display:inline">'pose_ref_sub_sampling'</span><span data-if="c" style="display:none">"pose_ref_sub_sampling"</span><span data-if="cpp" style="display:none">"pose_ref_sub_sampling"</span><span data-if="com" style="display:none">"pose_ref_sub_sampling"</span><span data-if="dotnet" style="display:none">"pose_ref_sub_sampling"</span><span data-if="python" style="display:none">"pose_ref_sub_sampling"</span></i> &gt; 0
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'pose_ref_dist_threshold_rel'</span><span data-if="c" style="display:none">"pose_ref_dist_threshold_rel"</span><span data-if="cpp" style="display:none">"pose_ref_dist_threshold_rel"</span><span data-if="com" style="display:none">"pose_ref_dist_threshold_rel"</span><span data-if="dotnet" style="display:none">"pose_ref_dist_threshold_rel"</span><span data-if="python" style="display:none">"pose_ref_dist_threshold_rel"</span></i>:</b></dt>
<dd>
<p>

Set the distance threshold for dense pose refinement relative to the
diameter of the surface model.
Only scene points that are closer to the object than this distance
are used for the optimization. Scene points further
away are ignored.
</p>
<p>Note that only one of the parameters
<i><span data-if="hdevelop" style="display:inline">'pose_ref_dist_threshold_rel'</span><span data-if="c" style="display:none">"pose_ref_dist_threshold_rel"</span><span data-if="cpp" style="display:none">"pose_ref_dist_threshold_rel"</span><span data-if="com" style="display:none">"pose_ref_dist_threshold_rel"</span><span data-if="dotnet" style="display:none">"pose_ref_dist_threshold_rel"</span><span data-if="python" style="display:none">"pose_ref_dist_threshold_rel"</span></i>
and <i><span data-if="hdevelop" style="display:inline">'pose_ref_dist_threshold_abs'</span><span data-if="c" style="display:none">"pose_ref_dist_threshold_abs"</span><span data-if="cpp" style="display:none">"pose_ref_dist_threshold_abs"</span><span data-if="com" style="display:none">"pose_ref_dist_threshold_abs"</span><span data-if="dotnet" style="display:none">"pose_ref_dist_threshold_abs"</span><span data-if="python" style="display:none">"pose_ref_dist_threshold_abs"</span></i> should be set.
If both are set, only the value of the last modified parameter is used.
Note that this parameter is ignored if the dense pose refinement is
disabled.</p>
<p>
<i>Suggested values:</i> <i>0.03</i>, <i>0.05</i>,
<i>0.1</i>, <i>0.2</i> </p>
<p>
<i>Default value:</i> <i>0.1</i> </p>
<p>
<i>Assertion:</i> <i><span data-if="hdevelop" style="display:inline">'pose_ref_dist_threshold_rel'</span><span data-if="c" style="display:none">"pose_ref_dist_threshold_rel"</span><span data-if="cpp" style="display:none">"pose_ref_dist_threshold_rel"</span><span data-if="com" style="display:none">"pose_ref_dist_threshold_rel"</span><span data-if="dotnet" style="display:none">"pose_ref_dist_threshold_rel"</span><span data-if="python" style="display:none">"pose_ref_dist_threshold_rel"</span></i> &gt; 0
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'pose_ref_dist_threshold_abs'</span><span data-if="c" style="display:none">"pose_ref_dist_threshold_abs"</span><span data-if="cpp" style="display:none">"pose_ref_dist_threshold_abs"</span><span data-if="com" style="display:none">"pose_ref_dist_threshold_abs"</span><span data-if="dotnet" style="display:none">"pose_ref_dist_threshold_abs"</span><span data-if="python" style="display:none">"pose_ref_dist_threshold_abs"</span></i>:</b></dt>
<dd>
<p>

Set the distance threshold for dense pose refinement as an absolute
value.
See <i><span data-if="hdevelop" style="display:inline">'pose_ref_dist_threshold_rel'</span><span data-if="c" style="display:none">"pose_ref_dist_threshold_rel"</span><span data-if="cpp" style="display:none">"pose_ref_dist_threshold_rel"</span><span data-if="com" style="display:none">"pose_ref_dist_threshold_rel"</span><span data-if="dotnet" style="display:none">"pose_ref_dist_threshold_rel"</span><span data-if="python" style="display:none">"pose_ref_dist_threshold_rel"</span></i> for a detailed
description.
</p>
<p>Note that only one of the parameters
<i><span data-if="hdevelop" style="display:inline">'pose_ref_dist_threshold_rel'</span><span data-if="c" style="display:none">"pose_ref_dist_threshold_rel"</span><span data-if="cpp" style="display:none">"pose_ref_dist_threshold_rel"</span><span data-if="com" style="display:none">"pose_ref_dist_threshold_rel"</span><span data-if="dotnet" style="display:none">"pose_ref_dist_threshold_rel"</span><span data-if="python" style="display:none">"pose_ref_dist_threshold_rel"</span></i> and
<i><span data-if="hdevelop" style="display:inline">'pose_ref_dist_threshold_abs'</span><span data-if="c" style="display:none">"pose_ref_dist_threshold_abs"</span><span data-if="cpp" style="display:none">"pose_ref_dist_threshold_abs"</span><span data-if="com" style="display:none">"pose_ref_dist_threshold_abs"</span><span data-if="dotnet" style="display:none">"pose_ref_dist_threshold_abs"</span><span data-if="python" style="display:none">"pose_ref_dist_threshold_abs"</span></i> should be set.
If both are set, only the value of the modified last parameter is used.
</p>
<p>
<i>Assertion:</i> <i><span data-if="hdevelop" style="display:inline">'pose_ref_dist_threshold_abs'</span><span data-if="c" style="display:none">"pose_ref_dist_threshold_abs"</span><span data-if="cpp" style="display:none">"pose_ref_dist_threshold_abs"</span><span data-if="com" style="display:none">"pose_ref_dist_threshold_abs"</span><span data-if="dotnet" style="display:none">"pose_ref_dist_threshold_abs"</span><span data-if="python" style="display:none">"pose_ref_dist_threshold_abs"</span></i> &gt; 0
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'pose_ref_scoring_dist_rel'</span><span data-if="c" style="display:none">"pose_ref_scoring_dist_rel"</span><span data-if="cpp" style="display:none">"pose_ref_scoring_dist_rel"</span><span data-if="com" style="display:none">"pose_ref_scoring_dist_rel"</span><span data-if="dotnet" style="display:none">"pose_ref_scoring_dist_rel"</span><span data-if="python" style="display:none">"pose_ref_scoring_dist_rel"</span></i>:</b></dt>
<dd>
<p>

Set the distance threshold for scoring relative to the
diameter of the surface model. See the following
<i><span data-if="hdevelop" style="display:inline">'pose_ref_scoring_dist_abs'</span><span data-if="c" style="display:none">"pose_ref_scoring_dist_abs"</span><span data-if="cpp" style="display:none">"pose_ref_scoring_dist_abs"</span><span data-if="com" style="display:none">"pose_ref_scoring_dist_abs"</span><span data-if="dotnet" style="display:none">"pose_ref_scoring_dist_abs"</span><span data-if="python" style="display:none">"pose_ref_scoring_dist_abs"</span></i> for a detailed description.
</p>
<p>Note that only one of the parameters
<i><span data-if="hdevelop" style="display:inline">'pose_ref_scoring_dist_rel'</span><span data-if="c" style="display:none">"pose_ref_scoring_dist_rel"</span><span data-if="cpp" style="display:none">"pose_ref_scoring_dist_rel"</span><span data-if="com" style="display:none">"pose_ref_scoring_dist_rel"</span><span data-if="dotnet" style="display:none">"pose_ref_scoring_dist_rel"</span><span data-if="python" style="display:none">"pose_ref_scoring_dist_rel"</span></i> and
<i><span data-if="hdevelop" style="display:inline">'pose_ref_scoring_dist_abs'</span><span data-if="c" style="display:none">"pose_ref_scoring_dist_abs"</span><span data-if="cpp" style="display:none">"pose_ref_scoring_dist_abs"</span><span data-if="com" style="display:none">"pose_ref_scoring_dist_abs"</span><span data-if="dotnet" style="display:none">"pose_ref_scoring_dist_abs"</span><span data-if="python" style="display:none">"pose_ref_scoring_dist_abs"</span></i> should be set.
If both are set, only the value of the last modified parameter is used.
Note that this parameter is ignored if the dense pose refinement is
disabled.
</p>
<p>
<i>Suggested values:</i> <i>0.2</i>, <i>0.01</i>,
<i>0.005</i>, <i>0.0001</i> </p>
<p>
<i>Default value:</i> <i>0.005</i> </p>
<p>
<i>Assertion:</i> <i><span data-if="hdevelop" style="display:inline">'pose_ref_scoring_dist_rel'</span><span data-if="c" style="display:none">"pose_ref_scoring_dist_rel"</span><span data-if="cpp" style="display:none">"pose_ref_scoring_dist_rel"</span><span data-if="com" style="display:none">"pose_ref_scoring_dist_rel"</span><span data-if="dotnet" style="display:none">"pose_ref_scoring_dist_rel"</span><span data-if="python" style="display:none">"pose_ref_scoring_dist_rel"</span></i> &gt; 0
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'pose_ref_scoring_dist_abs'</span><span data-if="c" style="display:none">"pose_ref_scoring_dist_abs"</span><span data-if="cpp" style="display:none">"pose_ref_scoring_dist_abs"</span><span data-if="com" style="display:none">"pose_ref_scoring_dist_abs"</span><span data-if="dotnet" style="display:none">"pose_ref_scoring_dist_abs"</span><span data-if="python" style="display:none">"pose_ref_scoring_dist_abs"</span></i>:</b></dt>
<dd>
<p>

Set the distance threshold for scoring.
Only scene points that are closer to the object than this distance
are considered to be 'on the model' when computing the score after
the pose refinement. All other scene points are considered not to be
on the model.
The value should correspond to the amount of noise on the
coordinates of the scene points.
Note that this parameter is ignored if the dense pose refinement is
disabled.
</p>
<p>Note that only one of the parameters
<i><span data-if="hdevelop" style="display:inline">'pose_ref_scoring_dist_rel'</span><span data-if="c" style="display:none">"pose_ref_scoring_dist_rel"</span><span data-if="cpp" style="display:none">"pose_ref_scoring_dist_rel"</span><span data-if="com" style="display:none">"pose_ref_scoring_dist_rel"</span><span data-if="dotnet" style="display:none">"pose_ref_scoring_dist_rel"</span><span data-if="python" style="display:none">"pose_ref_scoring_dist_rel"</span></i> and
<i><span data-if="hdevelop" style="display:inline">'pose_ref_scoring_dist_abs'</span><span data-if="c" style="display:none">"pose_ref_scoring_dist_abs"</span><span data-if="cpp" style="display:none">"pose_ref_scoring_dist_abs"</span><span data-if="com" style="display:none">"pose_ref_scoring_dist_abs"</span><span data-if="dotnet" style="display:none">"pose_ref_scoring_dist_abs"</span><span data-if="python" style="display:none">"pose_ref_scoring_dist_abs"</span></i> should be set.
If both are set, only the value of the last modified parameter is used.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'pose_ref_use_scene_normals'</span><span data-if="c" style="display:none">"pose_ref_use_scene_normals"</span><span data-if="cpp" style="display:none">"pose_ref_use_scene_normals"</span><span data-if="com" style="display:none">"pose_ref_use_scene_normals"</span><span data-if="dotnet" style="display:none">"pose_ref_use_scene_normals"</span><span data-if="python" style="display:none">"pose_ref_use_scene_normals"</span></i>:</b></dt>
<dd>
<p>

Enables or disables the usage of scene normals for the pose
refinement.
This parameter is explained in more details in the section
<code>Sparse pose refinement</code> above.</p>
<p>
<i>List of values:</i> <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>, <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i> </p>
<p>
<i>Default value:</i> <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'pose_ref_dist_threshold_edges_rel'</span><span data-if="c" style="display:none">"pose_ref_dist_threshold_edges_rel"</span><span data-if="cpp" style="display:none">"pose_ref_dist_threshold_edges_rel"</span><span data-if="com" style="display:none">"pose_ref_dist_threshold_edges_rel"</span><span data-if="dotnet" style="display:none">"pose_ref_dist_threshold_edges_rel"</span><span data-if="python" style="display:none">"pose_ref_dist_threshold_edges_rel"</span></i>:</b></dt>
<dd>
<p>

Set the distance threshold of edges for dense pose refinement relative
to the diameter of the surface model.
Only scene edges that are closer to the object edges than this distance
are used for the optimization. Scene edges further away are ignored.
</p>
<p>Note that only one of the parameters
<i><span data-if="hdevelop" style="display:inline">'pose_ref_dist_threshold_edges_rel'</span><span data-if="c" style="display:none">"pose_ref_dist_threshold_edges_rel"</span><span data-if="cpp" style="display:none">"pose_ref_dist_threshold_edges_rel"</span><span data-if="com" style="display:none">"pose_ref_dist_threshold_edges_rel"</span><span data-if="dotnet" style="display:none">"pose_ref_dist_threshold_edges_rel"</span><span data-if="python" style="display:none">"pose_ref_dist_threshold_edges_rel"</span></i>
and <i><span data-if="hdevelop" style="display:inline">'pose_ref_dist_threshold_edges_abs'</span><span data-if="c" style="display:none">"pose_ref_dist_threshold_edges_abs"</span><span data-if="cpp" style="display:none">"pose_ref_dist_threshold_edges_abs"</span><span data-if="com" style="display:none">"pose_ref_dist_threshold_edges_abs"</span><span data-if="dotnet" style="display:none">"pose_ref_dist_threshold_edges_abs"</span><span data-if="python" style="display:none">"pose_ref_dist_threshold_edges_abs"</span></i> should be set.
If both are set, only the value of the last modified parameter is used.
Note that this parameter is ignored if the dense pose refinement is
disabled or if no edge-supported surface-based matching is used.</p>
<p>
<i>Suggested values:</i> <i>0.03</i>, <i>0.05</i>,
<i>0.1</i>, <i>0.2</i> </p>
<p>
<i>Default value:</i> <i>0.1</i> </p>
<p>
<i>Assertion:</i> <i><span data-if="hdevelop" style="display:inline">'pose_ref_dist_threshold_edges_rel'</span><span data-if="c" style="display:none">"pose_ref_dist_threshold_edges_rel"</span><span data-if="cpp" style="display:none">"pose_ref_dist_threshold_edges_rel"</span><span data-if="com" style="display:none">"pose_ref_dist_threshold_edges_rel"</span><span data-if="dotnet" style="display:none">"pose_ref_dist_threshold_edges_rel"</span><span data-if="python" style="display:none">"pose_ref_dist_threshold_edges_rel"</span></i> &gt; 0
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'pose_ref_dist_threshold_edges_abs'</span><span data-if="c" style="display:none">"pose_ref_dist_threshold_edges_abs"</span><span data-if="cpp" style="display:none">"pose_ref_dist_threshold_edges_abs"</span><span data-if="com" style="display:none">"pose_ref_dist_threshold_edges_abs"</span><span data-if="dotnet" style="display:none">"pose_ref_dist_threshold_edges_abs"</span><span data-if="python" style="display:none">"pose_ref_dist_threshold_edges_abs"</span></i>:</b></dt>
<dd>
<p>

Set the distance threshold of edges for dense pose refinement as
an absolute value.
See <i><span data-if="hdevelop" style="display:inline">'pose_ref_dist_threshold_edges_rel'</span><span data-if="c" style="display:none">"pose_ref_dist_threshold_edges_rel"</span><span data-if="cpp" style="display:none">"pose_ref_dist_threshold_edges_rel"</span><span data-if="com" style="display:none">"pose_ref_dist_threshold_edges_rel"</span><span data-if="dotnet" style="display:none">"pose_ref_dist_threshold_edges_rel"</span><span data-if="python" style="display:none">"pose_ref_dist_threshold_edges_rel"</span></i> for a detailed
description.
</p>
<p>Note that only one of the parameters
<i><span data-if="hdevelop" style="display:inline">'pose_ref_dist_threshold_edges_rel'</span><span data-if="c" style="display:none">"pose_ref_dist_threshold_edges_rel"</span><span data-if="cpp" style="display:none">"pose_ref_dist_threshold_edges_rel"</span><span data-if="com" style="display:none">"pose_ref_dist_threshold_edges_rel"</span><span data-if="dotnet" style="display:none">"pose_ref_dist_threshold_edges_rel"</span><span data-if="python" style="display:none">"pose_ref_dist_threshold_edges_rel"</span></i>
and <i><span data-if="hdevelop" style="display:inline">'pose_ref_dist_threshold_edges_abs'</span><span data-if="c" style="display:none">"pose_ref_dist_threshold_edges_abs"</span><span data-if="cpp" style="display:none">"pose_ref_dist_threshold_edges_abs"</span><span data-if="com" style="display:none">"pose_ref_dist_threshold_edges_abs"</span><span data-if="dotnet" style="display:none">"pose_ref_dist_threshold_edges_abs"</span><span data-if="python" style="display:none">"pose_ref_dist_threshold_edges_abs"</span></i> should be set.
If both are set, only the value of the last modified parameter is used.
Note that this parameter is ignored if the dense pose refinement is
disabled or if no edge-supported surface-based matching is used.</p>
<p>
<i>Assertion:</i> <i><span data-if="hdevelop" style="display:inline">'pose_ref_dist_threshold_edges_abs'</span><span data-if="c" style="display:none">"pose_ref_dist_threshold_edges_abs"</span><span data-if="cpp" style="display:none">"pose_ref_dist_threshold_edges_abs"</span><span data-if="com" style="display:none">"pose_ref_dist_threshold_edges_abs"</span><span data-if="dotnet" style="display:none">"pose_ref_dist_threshold_edges_abs"</span><span data-if="python" style="display:none">"pose_ref_dist_threshold_edges_abs"</span></i> &gt; 0
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'pose_ref_scoring_dist_edges_rel'</span><span data-if="c" style="display:none">"pose_ref_scoring_dist_edges_rel"</span><span data-if="cpp" style="display:none">"pose_ref_scoring_dist_edges_rel"</span><span data-if="com" style="display:none">"pose_ref_scoring_dist_edges_rel"</span><span data-if="dotnet" style="display:none">"pose_ref_scoring_dist_edges_rel"</span><span data-if="python" style="display:none">"pose_ref_scoring_dist_edges_rel"</span></i>:</b></dt>
<dd>
<p>

Set the distance threshold of edges for scoring relative to the
diameter of the surface model. See the following
<i><span data-if="hdevelop" style="display:inline">'pose_ref_scoring_dist_edges_abs'</span><span data-if="c" style="display:none">"pose_ref_scoring_dist_edges_abs"</span><span data-if="cpp" style="display:none">"pose_ref_scoring_dist_edges_abs"</span><span data-if="com" style="display:none">"pose_ref_scoring_dist_edges_abs"</span><span data-if="dotnet" style="display:none">"pose_ref_scoring_dist_edges_abs"</span><span data-if="python" style="display:none">"pose_ref_scoring_dist_edges_abs"</span></i> for a detailed description.
</p>
<p>Note that only one of the parameters
<i><span data-if="hdevelop" style="display:inline">'pose_ref_scoring_dist_edges_rel'</span><span data-if="c" style="display:none">"pose_ref_scoring_dist_edges_rel"</span><span data-if="cpp" style="display:none">"pose_ref_scoring_dist_edges_rel"</span><span data-if="com" style="display:none">"pose_ref_scoring_dist_edges_rel"</span><span data-if="dotnet" style="display:none">"pose_ref_scoring_dist_edges_rel"</span><span data-if="python" style="display:none">"pose_ref_scoring_dist_edges_rel"</span></i> and
<i><span data-if="hdevelop" style="display:inline">'pose_ref_scoring_dist_edges_abs'</span><span data-if="c" style="display:none">"pose_ref_scoring_dist_edges_abs"</span><span data-if="cpp" style="display:none">"pose_ref_scoring_dist_edges_abs"</span><span data-if="com" style="display:none">"pose_ref_scoring_dist_edges_abs"</span><span data-if="dotnet" style="display:none">"pose_ref_scoring_dist_edges_abs"</span><span data-if="python" style="display:none">"pose_ref_scoring_dist_edges_abs"</span></i> should be set.
If both are set, only the value of the last modified parameter is used.
Note that this parameter is ignored if the dense pose refinement is
disabled or if no edge-supported surface-based matching is used.</p>
<p>
<i>Suggested values:</i> <i>0.2</i>, <i>0.01</i>,
<i>0.005</i>, <i>0.0001</i> </p>
<p>
<i>Default value:</i> <i>0.005</i> </p>
<p>
<i>Assertion:</i> <i><span data-if="hdevelop" style="display:inline">'pose_ref_scoring_dist_edges_rel'</span><span data-if="c" style="display:none">"pose_ref_scoring_dist_edges_rel"</span><span data-if="cpp" style="display:none">"pose_ref_scoring_dist_edges_rel"</span><span data-if="com" style="display:none">"pose_ref_scoring_dist_edges_rel"</span><span data-if="dotnet" style="display:none">"pose_ref_scoring_dist_edges_rel"</span><span data-if="python" style="display:none">"pose_ref_scoring_dist_edges_rel"</span></i> &gt; 0
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'pose_ref_scoring_dist_edges_abs'</span><span data-if="c" style="display:none">"pose_ref_scoring_dist_edges_abs"</span><span data-if="cpp" style="display:none">"pose_ref_scoring_dist_edges_abs"</span><span data-if="com" style="display:none">"pose_ref_scoring_dist_edges_abs"</span><span data-if="dotnet" style="display:none">"pose_ref_scoring_dist_edges_abs"</span><span data-if="python" style="display:none">"pose_ref_scoring_dist_edges_abs"</span></i>:</b></dt>
<dd>
<p>

Set the distance threshold of edges for scoring as an absolute value.
Only scene edges that are closer to the object edges than this distance
are considered to be 'on the model' when computing the score after
the pose refinement. All other scene edges are considered not to be
on the model.
The value should correspond to the expected inaccuracy of the extracted
scene edges and the inaccuracy of the refined pose.
</p>
<p>Note that only one of the parameters
<i><span data-if="hdevelop" style="display:inline">'pose_ref_scoring_dist_edges_rel'</span><span data-if="c" style="display:none">"pose_ref_scoring_dist_edges_rel"</span><span data-if="cpp" style="display:none">"pose_ref_scoring_dist_edges_rel"</span><span data-if="com" style="display:none">"pose_ref_scoring_dist_edges_rel"</span><span data-if="dotnet" style="display:none">"pose_ref_scoring_dist_edges_rel"</span><span data-if="python" style="display:none">"pose_ref_scoring_dist_edges_rel"</span></i> and
<i><span data-if="hdevelop" style="display:inline">'pose_ref_scoring_dist_edges_abs'</span><span data-if="c" style="display:none">"pose_ref_scoring_dist_edges_abs"</span><span data-if="cpp" style="display:none">"pose_ref_scoring_dist_edges_abs"</span><span data-if="com" style="display:none">"pose_ref_scoring_dist_edges_abs"</span><span data-if="dotnet" style="display:none">"pose_ref_scoring_dist_edges_abs"</span><span data-if="python" style="display:none">"pose_ref_scoring_dist_edges_abs"</span></i> should be set.
If both are set, only the value of the last modified parameter is used.
Note that this parameter is ignored if the dense pose refinement is
disabled or if no edge-supported surface-based matching is used.
</p>
<p><i>Assertion:</i>  <i><span data-if="hdevelop" style="display:inline">'pose_ref_scoring_dist_edges_abs'</span><span data-if="c" style="display:none">"pose_ref_scoring_dist_edges_abs"</span><span data-if="cpp" style="display:none">"pose_ref_scoring_dist_edges_abs"</span><span data-if="com" style="display:none">"pose_ref_scoring_dist_edges_abs"</span><span data-if="dotnet" style="display:none">"pose_ref_scoring_dist_edges_abs"</span><span data-if="python" style="display:none">"pose_ref_scoring_dist_edges_abs"</span></i> &gt; 0
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'use_view_based'</span><span data-if="c" style="display:none">"use_view_based"</span><span data-if="cpp" style="display:none">"use_view_based"</span><span data-if="com" style="display:none">"use_view_based"</span><span data-if="dotnet" style="display:none">"use_view_based"</span><span data-if="python" style="display:none">"use_view_based"</span></i>:</b></dt>
<dd>
<p>

Turns the view-based score computation for surface-based matching on or
off. For further details, see the respective description in the section
about the sparse pose refinement above.
</p>
<p>If the model was not prepared for view-based score computation,
an error is returned.</p>
<p>
<i>List of values:</i> <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>, <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i> </p>


<p><i>Default value:</i> <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>, if <i><span data-if="hdevelop" style="display:inline">'train_view_based'</span><span data-if="c" style="display:none">"train_view_based"</span><span data-if="cpp" style="display:none">"train_view_based"</span><span data-if="com" style="display:none">"train_view_based"</span><span data-if="dotnet" style="display:none">"train_view_based"</span><span data-if="python" style="display:none">"train_view_based"</span></i>
was disabled when creating the model, otherwise <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'use_self_similar_poses'</span><span data-if="c" style="display:none">"use_self_similar_poses"</span><span data-if="cpp" style="display:none">"use_self_similar_poses"</span><span data-if="com" style="display:none">"use_self_similar_poses"</span><span data-if="dotnet" style="display:none">"use_self_similar_poses"</span><span data-if="python" style="display:none">"use_self_similar_poses"</span></i>:</b></dt>
<dd>
<p>

Turns the optimization regarding self-similar, almost symmetric poses
on or off.
</p>
<p>If the model was not created with activated parameter
<i><span data-if="hdevelop" style="display:inline">'train_self_similar_poses'</span><span data-if="c" style="display:none">"train_self_similar_poses"</span><span data-if="cpp" style="display:none">"train_self_similar_poses"</span><span data-if="com" style="display:none">"train_self_similar_poses"</span><span data-if="dotnet" style="display:none">"train_self_similar_poses"</span><span data-if="python" style="display:none">"train_self_similar_poses"</span></i>, an error is returned when setting
<i><span data-if="hdevelop" style="display:inline">'use_self_similar_poses'</span><span data-if="c" style="display:none">"use_self_similar_poses"</span><span data-if="cpp" style="display:none">"use_self_similar_poses"</span><span data-if="com" style="display:none">"use_self_similar_poses"</span><span data-if="dotnet" style="display:none">"use_self_similar_poses"</span><span data-if="python" style="display:none">"use_self_similar_poses"</span></i> to <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>.</p>
<p>
<i>List of values:</i> <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>, <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i> </p>
<p>
<i>Default value:</i> <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>, if <i><span data-if="hdevelop" style="display:inline">'train_self_similar_poses'</span><span data-if="c" style="display:none">"train_self_similar_poses"</span><span data-if="cpp" style="display:none">"train_self_similar_poses"</span><span data-if="com" style="display:none">"train_self_similar_poses"</span><span data-if="dotnet" style="display:none">"train_self_similar_poses"</span><span data-if="python" style="display:none">"train_self_similar_poses"</span></i>
was disabled when creating the model, otherwise <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>.
</p>
</dd>
</dl>
</dd>
</dl>
<h2 id="sec_execution">运行信息</h2>
<ul>
  <li>多线程类型:可重入(与非独占操作符并行运行)。</li>
<li>多线程作用域:全局(可以从任何线程调用)。</li>
  
    <li>Automatically parallelized on internal data level.</li>
  
</ul>
<p>This operator returns a handle. Note that the state of an instance of this handle type may be changed by specific operators even though the handle is used as an input parameter by those operators.</p>
<p>This operator supports canceling timeouts and interrupts.</p>
<h2 id="sec_parameters">参数表</h2>
  <div class="par">
<div class="parhead">
<span id="SurfaceModelID" class="parname"><b><code><span data-if="hdevelop" style="display:inline">SurfaceModelID</span><span data-if="c" style="display:none">SurfaceModelID</span><span data-if="cpp" style="display:none">SurfaceModelID</span><span data-if="com" style="display:none">SurfaceModelID</span><span data-if="dotnet" style="display:none">surfaceModelID</span><span data-if="python" style="display:none">surface_model_id</span></code></b> (input_control)  </span><span>surface_model <code>→</code> <span data-if="dotnet" style="display:none"><a href="HSurfaceModel.html">HSurfaceModel</a>, </span><span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">HHandle</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (handle)</span><span data-if="dotnet" style="display:none"> (<i>IntPtr</i>)</span><span data-if="cpp" style="display:none"> (<i>HHandle</i>)</span><span data-if="c" style="display:none"> (<i>handle</i>)</span></span>
</div>
<p class="pardesc">Handle of the surface model.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="ObjectModel3D" class="parname"><b><code><span data-if="hdevelop" style="display:inline">ObjectModel3D</span><span data-if="c" style="display:none">ObjectModel3D</span><span data-if="cpp" style="display:none">ObjectModel3D</span><span data-if="com" style="display:none">ObjectModel3D</span><span data-if="dotnet" style="display:none">objectModel3D</span><span data-if="python" style="display:none">object_model_3d</span></code></b> (input_control)  </span><span>object_model_3d <code>→</code> <span data-if="dotnet" style="display:none"><a href="HObjectModel3D.html">HObjectModel3D</a>, </span><span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">HHandle</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (handle)</span><span data-if="dotnet" style="display:none"> (<i>IntPtr</i>)</span><span data-if="cpp" style="display:none"> (<i>HHandle</i>)</span><span data-if="c" style="display:none"> (<i>handle</i>)</span></span>
</div>
<p class="pardesc">Handle of the 3D object model containing the
scene.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="RelSamplingDistance" class="parname"><b><code><span data-if="hdevelop" style="display:inline">RelSamplingDistance</span><span data-if="c" style="display:none">RelSamplingDistance</span><span data-if="cpp" style="display:none">RelSamplingDistance</span><span data-if="com" style="display:none">RelSamplingDistance</span><span data-if="dotnet" style="display:none">relSamplingDistance</span><span data-if="python" style="display:none">rel_sampling_distance</span></code></b> (input_control)  </span><span>real <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">float</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Scene sampling distance relative to the diameter
of the surface model.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>0.05</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span>0.1, 0.07, 0.05, 0.04, 0.03</p>
<p class="pardesc"><span class="parcat">Restriction:
      </span><code>0 &lt; RelSamplingDistance &lt; 1</code></p>
</div>
  <div class="par">
<div class="parhead">
<span id="KeyPointFraction" class="parname"><b><code><span data-if="hdevelop" style="display:inline">KeyPointFraction</span><span data-if="c" style="display:none">KeyPointFraction</span><span data-if="cpp" style="display:none">KeyPointFraction</span><span data-if="com" style="display:none">KeyPointFraction</span><span data-if="dotnet" style="display:none">keyPointFraction</span><span data-if="python" style="display:none">key_point_fraction</span></code></b> (input_control)  </span><span>real <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">float</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Fraction of sampled scene points used as
key points.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>0.2</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span>0.3, 0.2, 0.1, 0.05</p>
<p class="pardesc"><span class="parcat">Restriction:
      </span><code>0 &lt; KeyPointFraction &lt;= 1</code></p>
</div>
  <div class="par">
<div class="parhead">
<span id="MinScore" class="parname"><b><code><span data-if="hdevelop" style="display:inline">MinScore</span><span data-if="c" style="display:none">MinScore</span><span data-if="cpp" style="display:none">MinScore</span><span data-if="com" style="display:none">MinScore</span><span data-if="dotnet" style="display:none">minScore</span><span data-if="python" style="display:none">min_score</span></code></b> (input_control)  </span><span>real(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">MaybeSequence[Union[float, int]]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real / </span><span data-if="hdevelop" style="display:inline">integer)</span><span data-if="dotnet" style="display:none"> (<i>double</i> / </span><span data-if="dotnet" style="display:none">int / </span><span data-if="dotnet" style="display:none">long)</span><span data-if="cpp" style="display:none"> (<i>double</i> / </span><span data-if="cpp" style="display:none">Hlong)</span><span data-if="c" style="display:none"> (<i>double</i> / </span><span data-if="c" style="display:none">Hlong)</span></span>
</div>
<p class="pardesc">Minimum score of the returned poses.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>0</p>
<p class="pardesc"><span class="parcat">Restriction:
      </span><code>MinScore &gt;= 0</code></p>
</div>
  <div class="par">
<div class="parhead">
<span id="ReturnResultHandle" class="parname"><b><code><span data-if="hdevelop" style="display:inline">ReturnResultHandle</span><span data-if="c" style="display:none">ReturnResultHandle</span><span data-if="cpp" style="display:none">ReturnResultHandle</span><span data-if="com" style="display:none">ReturnResultHandle</span><span data-if="dotnet" style="display:none">returnResultHandle</span><span data-if="python" style="display:none">return_result_handle</span></code></b> (input_control)  </span><span>string <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">str</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string)</span><span data-if="dotnet" style="display:none"> (<i>string</i>)</span><span data-if="cpp" style="display:none"> (<i>HString</i>)</span><span data-if="c" style="display:none"> (<i>char*</i>)</span></span>
</div>
<p class="pardesc">Enable returning a result handle in
<a href="#SurfaceMatchingResultID"><i><code><span data-if="hdevelop" style="display:inline">SurfaceMatchingResultID</span><span data-if="c" style="display:none">SurfaceMatchingResultID</span><span data-if="cpp" style="display:none">SurfaceMatchingResultID</span><span data-if="com" style="display:none">SurfaceMatchingResultID</span><span data-if="dotnet" style="display:none">surfaceMatchingResultID</span><span data-if="python" style="display:none">surface_matching_result_id</span></code></i></a>.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>
    <span data-if="hdevelop" style="display:inline">'false'</span>
    <span data-if="c" style="display:none">"false"</span>
    <span data-if="cpp" style="display:none">"false"</span>
    <span data-if="com" style="display:none">"false"</span>
    <span data-if="dotnet" style="display:none">"false"</span>
    <span data-if="python" style="display:none">"false"</span>
</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span>, <span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></p>
</div>
  <div class="par">
<div class="parhead">
<span id="GenParamName" class="parname"><b><code><span data-if="hdevelop" style="display:inline">GenParamName</span><span data-if="c" style="display:none">GenParamName</span><span data-if="cpp" style="display:none">GenParamName</span><span data-if="com" style="display:none">GenParamName</span><span data-if="dotnet" style="display:none">genParamName</span><span data-if="python" style="display:none">gen_param_name</span></code></b> (input_control)  </span><span>attribute.name-array <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[str]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string)</span><span data-if="dotnet" style="display:none"> (<i>string</i>)</span><span data-if="cpp" style="display:none"> (<i>HString</i>)</span><span data-if="c" style="display:none"> (<i>char*</i>)</span></span>
</div>
<p class="pardesc">Names of the generic parameters.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>[]</p>
<p class="pardesc"><span class="parcat">List of values:
      </span><span data-if="hdevelop" style="display:inline">'3d_edge_min_amplitude_abs'</span><span data-if="c" style="display:none">"3d_edge_min_amplitude_abs"</span><span data-if="cpp" style="display:none">"3d_edge_min_amplitude_abs"</span><span data-if="com" style="display:none">"3d_edge_min_amplitude_abs"</span><span data-if="dotnet" style="display:none">"3d_edge_min_amplitude_abs"</span><span data-if="python" style="display:none">"3d_edge_min_amplitude_abs"</span>, <span data-if="hdevelop" style="display:inline">'3d_edge_min_amplitude_rel'</span><span data-if="c" style="display:none">"3d_edge_min_amplitude_rel"</span><span data-if="cpp" style="display:none">"3d_edge_min_amplitude_rel"</span><span data-if="com" style="display:none">"3d_edge_min_amplitude_rel"</span><span data-if="dotnet" style="display:none">"3d_edge_min_amplitude_rel"</span><span data-if="python" style="display:none">"3d_edge_min_amplitude_rel"</span>, <span data-if="hdevelop" style="display:inline">'3d_edges'</span><span data-if="c" style="display:none">"3d_edges"</span><span data-if="cpp" style="display:none">"3d_edges"</span><span data-if="com" style="display:none">"3d_edges"</span><span data-if="dotnet" style="display:none">"3d_edges"</span><span data-if="python" style="display:none">"3d_edges"</span>, <span data-if="hdevelop" style="display:inline">'dense_pose_refinement'</span><span data-if="c" style="display:none">"dense_pose_refinement"</span><span data-if="cpp" style="display:none">"dense_pose_refinement"</span><span data-if="com" style="display:none">"dense_pose_refinement"</span><span data-if="dotnet" style="display:none">"dense_pose_refinement"</span><span data-if="python" style="display:none">"dense_pose_refinement"</span>, <span data-if="hdevelop" style="display:inline">'max_gap'</span><span data-if="c" style="display:none">"max_gap"</span><span data-if="cpp" style="display:none">"max_gap"</span><span data-if="com" style="display:none">"max_gap"</span><span data-if="dotnet" style="display:none">"max_gap"</span><span data-if="python" style="display:none">"max_gap"</span>, <span data-if="hdevelop" style="display:inline">'max_overlap_dist_abs'</span><span data-if="c" style="display:none">"max_overlap_dist_abs"</span><span data-if="cpp" style="display:none">"max_overlap_dist_abs"</span><span data-if="com" style="display:none">"max_overlap_dist_abs"</span><span data-if="dotnet" style="display:none">"max_overlap_dist_abs"</span><span data-if="python" style="display:none">"max_overlap_dist_abs"</span>, <span data-if="hdevelop" style="display:inline">'max_overlap_dist_rel'</span><span data-if="c" style="display:none">"max_overlap_dist_rel"</span><span data-if="cpp" style="display:none">"max_overlap_dist_rel"</span><span data-if="com" style="display:none">"max_overlap_dist_rel"</span><span data-if="dotnet" style="display:none">"max_overlap_dist_rel"</span><span data-if="python" style="display:none">"max_overlap_dist_rel"</span>, <span data-if="hdevelop" style="display:inline">'num_matches'</span><span data-if="c" style="display:none">"num_matches"</span><span data-if="cpp" style="display:none">"num_matches"</span><span data-if="com" style="display:none">"num_matches"</span><span data-if="dotnet" style="display:none">"num_matches"</span><span data-if="python" style="display:none">"num_matches"</span>, <span data-if="hdevelop" style="display:inline">'pose_ref_dist_threshold_abs'</span><span data-if="c" style="display:none">"pose_ref_dist_threshold_abs"</span><span data-if="cpp" style="display:none">"pose_ref_dist_threshold_abs"</span><span data-if="com" style="display:none">"pose_ref_dist_threshold_abs"</span><span data-if="dotnet" style="display:none">"pose_ref_dist_threshold_abs"</span><span data-if="python" style="display:none">"pose_ref_dist_threshold_abs"</span>, <span data-if="hdevelop" style="display:inline">'pose_ref_dist_threshold_edges_abs'</span><span data-if="c" style="display:none">"pose_ref_dist_threshold_edges_abs"</span><span data-if="cpp" style="display:none">"pose_ref_dist_threshold_edges_abs"</span><span data-if="com" style="display:none">"pose_ref_dist_threshold_edges_abs"</span><span data-if="dotnet" style="display:none">"pose_ref_dist_threshold_edges_abs"</span><span data-if="python" style="display:none">"pose_ref_dist_threshold_edges_abs"</span>, <span data-if="hdevelop" style="display:inline">'pose_ref_dist_threshold_edges_rel'</span><span data-if="c" style="display:none">"pose_ref_dist_threshold_edges_rel"</span><span data-if="cpp" style="display:none">"pose_ref_dist_threshold_edges_rel"</span><span data-if="com" style="display:none">"pose_ref_dist_threshold_edges_rel"</span><span data-if="dotnet" style="display:none">"pose_ref_dist_threshold_edges_rel"</span><span data-if="python" style="display:none">"pose_ref_dist_threshold_edges_rel"</span>, <span data-if="hdevelop" style="display:inline">'pose_ref_dist_threshold_rel'</span><span data-if="c" style="display:none">"pose_ref_dist_threshold_rel"</span><span data-if="cpp" style="display:none">"pose_ref_dist_threshold_rel"</span><span data-if="com" style="display:none">"pose_ref_dist_threshold_rel"</span><span data-if="dotnet" style="display:none">"pose_ref_dist_threshold_rel"</span><span data-if="python" style="display:none">"pose_ref_dist_threshold_rel"</span>, <span data-if="hdevelop" style="display:inline">'pose_ref_num_steps'</span><span data-if="c" style="display:none">"pose_ref_num_steps"</span><span data-if="cpp" style="display:none">"pose_ref_num_steps"</span><span data-if="com" style="display:none">"pose_ref_num_steps"</span><span data-if="dotnet" style="display:none">"pose_ref_num_steps"</span><span data-if="python" style="display:none">"pose_ref_num_steps"</span>, <span data-if="hdevelop" style="display:inline">'pose_ref_scoring_dist_abs'</span><span data-if="c" style="display:none">"pose_ref_scoring_dist_abs"</span><span data-if="cpp" style="display:none">"pose_ref_scoring_dist_abs"</span><span data-if="com" style="display:none">"pose_ref_scoring_dist_abs"</span><span data-if="dotnet" style="display:none">"pose_ref_scoring_dist_abs"</span><span data-if="python" style="display:none">"pose_ref_scoring_dist_abs"</span>, <span data-if="hdevelop" style="display:inline">'pose_ref_scoring_dist_edges_abs'</span><span data-if="c" style="display:none">"pose_ref_scoring_dist_edges_abs"</span><span data-if="cpp" style="display:none">"pose_ref_scoring_dist_edges_abs"</span><span data-if="com" style="display:none">"pose_ref_scoring_dist_edges_abs"</span><span data-if="dotnet" style="display:none">"pose_ref_scoring_dist_edges_abs"</span><span data-if="python" style="display:none">"pose_ref_scoring_dist_edges_abs"</span>, <span data-if="hdevelop" style="display:inline">'pose_ref_scoring_dist_edges_rel'</span><span data-if="c" style="display:none">"pose_ref_scoring_dist_edges_rel"</span><span data-if="cpp" style="display:none">"pose_ref_scoring_dist_edges_rel"</span><span data-if="com" style="display:none">"pose_ref_scoring_dist_edges_rel"</span><span data-if="dotnet" style="display:none">"pose_ref_scoring_dist_edges_rel"</span><span data-if="python" style="display:none">"pose_ref_scoring_dist_edges_rel"</span>, <span data-if="hdevelop" style="display:inline">'pose_ref_scoring_dist_rel'</span><span data-if="c" style="display:none">"pose_ref_scoring_dist_rel"</span><span data-if="cpp" style="display:none">"pose_ref_scoring_dist_rel"</span><span data-if="com" style="display:none">"pose_ref_scoring_dist_rel"</span><span data-if="dotnet" style="display:none">"pose_ref_scoring_dist_rel"</span><span data-if="python" style="display:none">"pose_ref_scoring_dist_rel"</span>, <span data-if="hdevelop" style="display:inline">'pose_ref_sub_sampling'</span><span data-if="c" style="display:none">"pose_ref_sub_sampling"</span><span data-if="cpp" style="display:none">"pose_ref_sub_sampling"</span><span data-if="com" style="display:none">"pose_ref_sub_sampling"</span><span data-if="dotnet" style="display:none">"pose_ref_sub_sampling"</span><span data-if="python" style="display:none">"pose_ref_sub_sampling"</span>, <span data-if="hdevelop" style="display:inline">'pose_ref_use_scene_normals'</span><span data-if="c" style="display:none">"pose_ref_use_scene_normals"</span><span data-if="cpp" style="display:none">"pose_ref_use_scene_normals"</span><span data-if="com" style="display:none">"pose_ref_use_scene_normals"</span><span data-if="dotnet" style="display:none">"pose_ref_use_scene_normals"</span><span data-if="python" style="display:none">"pose_ref_use_scene_normals"</span>, <span data-if="hdevelop" style="display:inline">'scene_invert_normals'</span><span data-if="c" style="display:none">"scene_invert_normals"</span><span data-if="cpp" style="display:none">"scene_invert_normals"</span><span data-if="com" style="display:none">"scene_invert_normals"</span><span data-if="dotnet" style="display:none">"scene_invert_normals"</span><span data-if="python" style="display:none">"scene_invert_normals"</span>, <span data-if="hdevelop" style="display:inline">'scene_normal_computation'</span><span data-if="c" style="display:none">"scene_normal_computation"</span><span data-if="cpp" style="display:none">"scene_normal_computation"</span><span data-if="com" style="display:none">"scene_normal_computation"</span><span data-if="dotnet" style="display:none">"scene_normal_computation"</span><span data-if="python" style="display:none">"scene_normal_computation"</span>, <span data-if="hdevelop" style="display:inline">'sparse_pose_refinement'</span><span data-if="c" style="display:none">"sparse_pose_refinement"</span><span data-if="cpp" style="display:none">"sparse_pose_refinement"</span><span data-if="com" style="display:none">"sparse_pose_refinement"</span><span data-if="dotnet" style="display:none">"sparse_pose_refinement"</span><span data-if="python" style="display:none">"sparse_pose_refinement"</span>, <span data-if="hdevelop" style="display:inline">'use_3d_edges'</span><span data-if="c" style="display:none">"use_3d_edges"</span><span data-if="cpp" style="display:none">"use_3d_edges"</span><span data-if="com" style="display:none">"use_3d_edges"</span><span data-if="dotnet" style="display:none">"use_3d_edges"</span><span data-if="python" style="display:none">"use_3d_edges"</span>, <span data-if="hdevelop" style="display:inline">'use_self_similar_poses'</span><span data-if="c" style="display:none">"use_self_similar_poses"</span><span data-if="cpp" style="display:none">"use_self_similar_poses"</span><span data-if="com" style="display:none">"use_self_similar_poses"</span><span data-if="dotnet" style="display:none">"use_self_similar_poses"</span><span data-if="python" style="display:none">"use_self_similar_poses"</span>, <span data-if="hdevelop" style="display:inline">'use_view_based'</span><span data-if="c" style="display:none">"use_view_based"</span><span data-if="cpp" style="display:none">"use_view_based"</span><span data-if="com" style="display:none">"use_view_based"</span><span data-if="dotnet" style="display:none">"use_view_based"</span><span data-if="python" style="display:none">"use_view_based"</span>, <span data-if="hdevelop" style="display:inline">'viewpoint'</span><span data-if="c" style="display:none">"viewpoint"</span><span data-if="cpp" style="display:none">"viewpoint"</span><span data-if="com" style="display:none">"viewpoint"</span><span data-if="dotnet" style="display:none">"viewpoint"</span><span data-if="python" style="display:none">"viewpoint"</span></p>
</div>
  <div class="par">
<div class="parhead">
<span id="GenParamValue" class="parname"><b><code><span data-if="hdevelop" style="display:inline">GenParamValue</span><span data-if="c" style="display:none">GenParamValue</span><span data-if="cpp" style="display:none">GenParamValue</span><span data-if="com" style="display:none">GenParamValue</span><span data-if="dotnet" style="display:none">genParamValue</span><span data-if="python" style="display:none">gen_param_value</span></code></b> (input_control)  </span><span>attribute.value-array <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[Union[str, float, int]]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string / </span><span data-if="hdevelop" style="display:inline">real / </span><span data-if="hdevelop" style="display:inline">integer)</span><span data-if="dotnet" style="display:none"> (<i>string</i> / </span><span data-if="dotnet" style="display:none">double / </span><span data-if="dotnet" style="display:none">int / </span><span data-if="dotnet" style="display:none">long)</span><span data-if="cpp" style="display:none"> (<i>HString</i> / </span><span data-if="cpp" style="display:none">double / </span><span data-if="cpp" style="display:none">Hlong)</span><span data-if="c" style="display:none"> (<i>char*</i> / </span><span data-if="c" style="display:none">double / </span><span data-if="c" style="display:none">Hlong)</span></span>
</div>
<p class="pardesc">Values of the generic parameters.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>[]</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span>0, 1, <span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span>, <span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span>, 0.005, 0.01, 0.03, 0.05, 0.1, <span data-if="hdevelop" style="display:inline">'num_scene_points'</span><span data-if="c" style="display:none">"num_scene_points"</span><span data-if="cpp" style="display:none">"num_scene_points"</span><span data-if="com" style="display:none">"num_scene_points"</span><span data-if="dotnet" style="display:none">"num_scene_points"</span><span data-if="python" style="display:none">"num_scene_points"</span>, <span data-if="hdevelop" style="display:inline">'model_point_fraction'</span><span data-if="c" style="display:none">"model_point_fraction"</span><span data-if="cpp" style="display:none">"model_point_fraction"</span><span data-if="com" style="display:none">"model_point_fraction"</span><span data-if="dotnet" style="display:none">"model_point_fraction"</span><span data-if="python" style="display:none">"model_point_fraction"</span>, <span data-if="hdevelop" style="display:inline">'num_model_points'</span><span data-if="c" style="display:none">"num_model_points"</span><span data-if="cpp" style="display:none">"num_model_points"</span><span data-if="com" style="display:none">"num_model_points"</span><span data-if="dotnet" style="display:none">"num_model_points"</span><span data-if="python" style="display:none">"num_model_points"</span>, <span data-if="hdevelop" style="display:inline">'fast'</span><span data-if="c" style="display:none">"fast"</span><span data-if="cpp" style="display:none">"fast"</span><span data-if="com" style="display:none">"fast"</span><span data-if="dotnet" style="display:none">"fast"</span><span data-if="python" style="display:none">"fast"</span>, <span data-if="hdevelop" style="display:inline">'mls'</span><span data-if="c" style="display:none">"mls"</span><span data-if="cpp" style="display:none">"mls"</span><span data-if="com" style="display:none">"mls"</span><span data-if="dotnet" style="display:none">"mls"</span><span data-if="python" style="display:none">"mls"</span></p>
</div>
  <div class="par">
<div class="parhead">
<span id="Pose" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Pose</span><span data-if="c" style="display:none">Pose</span><span data-if="cpp" style="display:none">Pose</span><span data-if="com" style="display:none">Pose</span><span data-if="dotnet" style="display:none">pose</span><span data-if="python" style="display:none">pose</span></code></b> (output_control)  </span><span>pose(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HPose.html">HPose</a>, </span><span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[Union[float, int]]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real / </span><span data-if="hdevelop" style="display:inline">integer)</span><span data-if="dotnet" style="display:none"> (<i>double</i> / </span><span data-if="dotnet" style="display:none">int / </span><span data-if="dotnet" style="display:none">long)</span><span data-if="cpp" style="display:none"> (<i>double</i> / </span><span data-if="cpp" style="display:none">Hlong)</span><span data-if="c" style="display:none"> (<i>double</i> / </span><span data-if="c" style="display:none">Hlong)</span></span>
</div>
<p class="pardesc">3D pose of the surface model in the scene.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="Score" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Score</span><span data-if="c" style="display:none">Score</span><span data-if="cpp" style="display:none">Score</span><span data-if="com" style="display:none">Score</span><span data-if="dotnet" style="display:none">score</span><span data-if="python" style="display:none">score</span></code></b> (output_control)  </span><span>real-array <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Score of the found instances of the surface
model.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="SurfaceMatchingResultID" class="parname"><b><code><span data-if="hdevelop" style="display:inline">SurfaceMatchingResultID</span><span data-if="c" style="display:none">SurfaceMatchingResultID</span><span data-if="cpp" style="display:none">SurfaceMatchingResultID</span><span data-if="com" style="display:none">SurfaceMatchingResultID</span><span data-if="dotnet" style="display:none">surfaceMatchingResultID</span><span data-if="python" style="display:none">surface_matching_result_id</span></code></b> (output_control)  </span><span>surface_matching_result(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HSurfaceMatchingResult.html">HSurfaceMatchingResult</a>, </span><span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[HHandle]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (handle)</span><span data-if="dotnet" style="display:none"> (<i>IntPtr</i>)</span><span data-if="cpp" style="display:none"> (<i>HHandle</i>)</span><span data-if="c" style="display:none"> (<i>handle</i>)</span></span>
</div>
<p class="pardesc">Handle of the matching result, if enabled in
<a href="#ReturnResultHandle"><i><code><span data-if="hdevelop" style="display:inline">ReturnResultHandle</span><span data-if="c" style="display:none">ReturnResultHandle</span><span data-if="cpp" style="display:none">ReturnResultHandle</span><span data-if="com" style="display:none">ReturnResultHandle</span><span data-if="dotnet" style="display:none">returnResultHandle</span><span data-if="python" style="display:none">return_result_handle</span></code></i></a>.</p>
</div>
<h2 id="sec_result">结果</h2>
<p><code><span data-if="hdevelop" style="display:inline">find_surface_model</span><span data-if="c" style="display:none">find_surface_model</span><span data-if="cpp" style="display:none">FindSurfaceModel</span><span data-if="com" style="display:none">FindSurfaceModel</span><span data-if="dotnet" style="display:none">FindSurfaceModel</span><span data-if="python" style="display:none">find_surface_model</span></code> returns <TT>2</TT> (
      <TT>H_MSG_TRUE</TT>)
     if all parameters are
correct. 如有必要，将引发异常。</p>
<h2 id="sec_predecessors">可能的前置算子</h2>
<p>
<code><a href="read_object_model_3d.html"><span data-if="hdevelop" style="display:inline">read_object_model_3d</span><span data-if="c" style="display:none">read_object_model_3d</span><span data-if="cpp" style="display:none">ReadObjectModel3d</span><span data-if="com" style="display:none">ReadObjectModel3d</span><span data-if="dotnet" style="display:none">ReadObjectModel3d</span><span data-if="python" style="display:none">read_object_model_3d</span></a></code>, 
<code><a href="xyz_to_object_model_3d.html"><span data-if="hdevelop" style="display:inline">xyz_to_object_model_3d</span><span data-if="c" style="display:none">xyz_to_object_model_3d</span><span data-if="cpp" style="display:none">XyzToObjectModel3d</span><span data-if="com" style="display:none">XyzToObjectModel3d</span><span data-if="dotnet" style="display:none">XyzToObjectModel3d</span><span data-if="python" style="display:none">xyz_to_object_model_3d</span></a></code>, 
<code><a href="get_object_model_3d_params.html"><span data-if="hdevelop" style="display:inline">get_object_model_3d_params</span><span data-if="c" style="display:none">get_object_model_3d_params</span><span data-if="cpp" style="display:none">GetObjectModel3dParams</span><span data-if="com" style="display:none">GetObjectModel3dParams</span><span data-if="dotnet" style="display:none">GetObjectModel3dParams</span><span data-if="python" style="display:none">get_object_model_3d_params</span></a></code>, 
<code><a href="read_surface_model.html"><span data-if="hdevelop" style="display:inline">read_surface_model</span><span data-if="c" style="display:none">read_surface_model</span><span data-if="cpp" style="display:none">ReadSurfaceModel</span><span data-if="com" style="display:none">ReadSurfaceModel</span><span data-if="dotnet" style="display:none">ReadSurfaceModel</span><span data-if="python" style="display:none">read_surface_model</span></a></code>, 
<code><a href="create_surface_model.html"><span data-if="hdevelop" style="display:inline">create_surface_model</span><span data-if="c" style="display:none">create_surface_model</span><span data-if="cpp" style="display:none">CreateSurfaceModel</span><span data-if="com" style="display:none">CreateSurfaceModel</span><span data-if="dotnet" style="display:none">CreateSurfaceModel</span><span data-if="python" style="display:none">create_surface_model</span></a></code>, 
<code><a href="get_surface_model_param.html"><span data-if="hdevelop" style="display:inline">get_surface_model_param</span><span data-if="c" style="display:none">get_surface_model_param</span><span data-if="cpp" style="display:none">GetSurfaceModelParam</span><span data-if="com" style="display:none">GetSurfaceModelParam</span><span data-if="dotnet" style="display:none">GetSurfaceModelParam</span><span data-if="python" style="display:none">get_surface_model_param</span></a></code>, 
<code><a href="edges_object_model_3d.html"><span data-if="hdevelop" style="display:inline">edges_object_model_3d</span><span data-if="c" style="display:none">edges_object_model_3d</span><span data-if="cpp" style="display:none">EdgesObjectModel3d</span><span data-if="com" style="display:none">EdgesObjectModel3d</span><span data-if="dotnet" style="display:none">EdgesObjectModel3d</span><span data-if="python" style="display:none">edges_object_model_3d</span></a></code>
</p>
<h2 id="sec_successors">可能的后置算子</h2>
<p>
<code><a href="refine_surface_model_pose.html"><span data-if="hdevelop" style="display:inline">refine_surface_model_pose</span><span data-if="c" style="display:none">refine_surface_model_pose</span><span data-if="cpp" style="display:none">RefineSurfaceModelPose</span><span data-if="com" style="display:none">RefineSurfaceModelPose</span><span data-if="dotnet" style="display:none">RefineSurfaceModelPose</span><span data-if="python" style="display:none">refine_surface_model_pose</span></a></code>, 
<code><a href="get_surface_matching_result.html"><span data-if="hdevelop" style="display:inline">get_surface_matching_result</span><span data-if="c" style="display:none">get_surface_matching_result</span><span data-if="cpp" style="display:none">GetSurfaceMatchingResult</span><span data-if="com" style="display:none">GetSurfaceMatchingResult</span><span data-if="dotnet" style="display:none">GetSurfaceMatchingResult</span><span data-if="python" style="display:none">get_surface_matching_result</span></a></code>, 
<code><a href="clear_surface_matching_result.html"><span data-if="hdevelop" style="display:inline">clear_surface_matching_result</span><span data-if="c" style="display:none">clear_surface_matching_result</span><span data-if="cpp" style="display:none">ClearSurfaceMatchingResult</span><span data-if="com" style="display:none">ClearSurfaceMatchingResult</span><span data-if="dotnet" style="display:none">ClearSurfaceMatchingResult</span><span data-if="python" style="display:none">clear_surface_matching_result</span></a></code>, 
<code><a href="clear_object_model_3d.html"><span data-if="hdevelop" style="display:inline">clear_object_model_3d</span><span data-if="c" style="display:none">clear_object_model_3d</span><span data-if="cpp" style="display:none">ClearObjectModel3d</span><span data-if="com" style="display:none">ClearObjectModel3d</span><span data-if="dotnet" style="display:none">ClearObjectModel3d</span><span data-if="python" style="display:none">clear_object_model_3d</span></a></code>
</p>
<h2 id="sec_alternatives">可替代算子</h2>
<p>
<code><a href="refine_surface_model_pose.html"><span data-if="hdevelop" style="display:inline">refine_surface_model_pose</span><span data-if="c" style="display:none">refine_surface_model_pose</span><span data-if="cpp" style="display:none">RefineSurfaceModelPose</span><span data-if="com" style="display:none">RefineSurfaceModelPose</span><span data-if="dotnet" style="display:none">RefineSurfaceModelPose</span><span data-if="python" style="display:none">refine_surface_model_pose</span></a></code>, 
<code><a href="find_surface_model_image.html"><span data-if="hdevelop" style="display:inline">find_surface_model_image</span><span data-if="c" style="display:none">find_surface_model_image</span><span data-if="cpp" style="display:none">FindSurfaceModelImage</span><span data-if="com" style="display:none">FindSurfaceModelImage</span><span data-if="dotnet" style="display:none">FindSurfaceModelImage</span><span data-if="python" style="display:none">find_surface_model_image</span></a></code>, 
<code><a href="refine_surface_model_pose_image.html"><span data-if="hdevelop" style="display:inline">refine_surface_model_pose_image</span><span data-if="c" style="display:none">refine_surface_model_pose_image</span><span data-if="cpp" style="display:none">RefineSurfaceModelPoseImage</span><span data-if="com" style="display:none">RefineSurfaceModelPoseImage</span><span data-if="dotnet" style="display:none">RefineSurfaceModelPoseImage</span><span data-if="python" style="display:none">refine_surface_model_pose_image</span></a></code>
</p>
<h2 id="sec_see">参考其它</h2>
<p>
<code><a href="refine_surface_model_pose.html"><span data-if="hdevelop" style="display:inline">refine_surface_model_pose</span><span data-if="c" style="display:none">refine_surface_model_pose</span><span data-if="cpp" style="display:none">RefineSurfaceModelPose</span><span data-if="com" style="display:none">RefineSurfaceModelPose</span><span data-if="dotnet" style="display:none">RefineSurfaceModelPose</span><span data-if="python" style="display:none">refine_surface_model_pose</span></a></code>, 
<code><a href="find_surface_model_image.html"><span data-if="hdevelop" style="display:inline">find_surface_model_image</span><span data-if="c" style="display:none">find_surface_model_image</span><span data-if="cpp" style="display:none">FindSurfaceModelImage</span><span data-if="com" style="display:none">FindSurfaceModelImage</span><span data-if="dotnet" style="display:none">FindSurfaceModelImage</span><span data-if="python" style="display:none">find_surface_model_image</span></a></code>
</p>
<h2 id="sec_module">模块</h2>
<p>
3D Metrology</p>
<!--OP_REF_FOOTER_START-->
<hr>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<div class="footer">
<div class="copyright">HALCON算子参考手册 Copyright © 2015-2023 51Halcon</div>
</div>
</div>
</body>
</html>
